Les systèmes Cisco SX20 vous permettent d'accéder à leur interface Web et de télécharger une sauvegarde de leur configuration dans un fichier .txt. Je peux ouvrir le fichier et modifier manuellement les paramètres, puis re-télécharger le fichier sans problèmes. Maintenant, j'ai un script Powershell qui va modifier certains paramètres dans le fichier de sauvegarde, puis enregistrez-le en tant que nouveau fichier .txt. Lorsque je tente de télécharger ce nouveau fichier, je reçois une erreur:Format Powershell et .txt
"Invalid file uploaded."
J'ai vérifié pour assurer mon script ne change pas, par inadvertance, d'autres informations dans le fichier et toutes les informations est ce qu'il doit être . La seule différence est que le fichier de sauvegarde original (téléchargé à partir de l'interface Web de Cisco) semble utiliser un format UNIX (LF) pour la lisibilité, tandis que la copie de sauvegarde générée par Powershell utilise le format Windows (CR/LF). Est-il possible que mon script provoque un problème de compatibilité avec l'interface Web?
$name = Read-Host 'What is the SX20 name?'
if ($name -notlike "SX20NAME[a-z , 0-9]*")
{
Read-Host 'Please begin naming conventions with "SX20NAME".'
}
else {
$description = Read-Host 'What is the SX20 alias?'
(Get-Content C:\Users\SX20_Backup.txt)|
Foreach-Object {$_-replace 'SX20NAME[a-z , 0-9]*' , $name}|
Foreach-Object {$_-replace 'SetAlias' , $description}|
Out-file $env:USERPROFILE\Desktop\$name.txt}
Merci, Joey! 'Out fichier $ env: USERPROFILE \ Desktop \ $ nom.txt -Encodage UTF8}' permet à l'interface Web d'accepter le nouveau fichier. Cependant, j'ai une nouvelle erreur. L'interface rejette la toute première ligne du fichier de sauvegarde. Aurais-je besoin d'ajouter une option similaire au début de mon script? – Blake
@Blake S'il vous plaît poster une nouvelle question avec la nouvelle erreur. –
@Blake, c'est probablement parce que l'interface trébuche sur U + FEFF, qui est ajouté comme le tout premier caractère à signaler que le fichier utilise UTF-8. Si vous avez du contenu Unicode et que vous avez besoin de UTF-8, tristement le chemin est '[IO.File] :: WriteAllLines (" $ env: USERPROFILE \ Desktop \ $ nom.txt ", $ content, (Nouveau-Objet System.Text .UTF8Encoding $ False)) '. Vous devez d'abord affecter la variable '$ content', bien sûr, à ce que votre pipeline aurait écrit dans le fichier sinon. – Joey