思科SX20系统允许您访问其Web界面并将其配置备份下载到.txt文件中。我可以打开文件并手动更改设置,然后重新上传文件而不会出现问题。现在,我有一个Powershell脚本,它将更改备份文件中的某些设置,然后将其另存为新的.txt文件。当我尝试上传这个新的文件,我得到一个错误:Powershell和.txt格式
"Invalid file uploaded."
我检查,以确保我的脚本是不是在不经意间改变文件和所有的相关信息中的任何其他信息是它必须是。唯一的区别是原始备份文件(从Cisco Web界面下载)似乎使用UNIX(LF)格式以提高可读性,而由Powershell生成的备份副本使用Windows(CR/LF)格式。我的脚本是否有任何方式导致与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}
谢谢你,乔伊! 'Out-file $ env:USERPROFILE \ Desktop \ $ name.txt -Encoding UTF8}'允许Web界面接受新文件。但是,我收到一个新的错误。该界面拒绝备份文件中的第一行。我需要在脚本的开头添加一个类似的选项吗? – Blake
@Blake请用新的错误发布一个新问题。 –
@Blake,这可能是因为接口在U + FEFF上绊倒了,UEFF被添加为第一个字符来表示该文件使用UTF-8。如果你有Unicode内容并且需要UTF-8,那么可悲的是'[IO.File] :: WriteAllLines(“$ env:USERPROFILE \ Desktop \ $ name.txt”,$ content,(New-Object System.Text .UTF8Encoding $ False))'。首先,您需要将变量'$ content'分配给您的管道,否则将写入该文件。 – Joey