Powershell正在替换文件中的空白

Powershell正在替换文件中的空白,powershell,Powershell,这可能是我不熟悉的unicode问题。 我已经创建了一个脚本来修补一堆正在工作的机器,该修补程序包括向配置文件(.ini)添加一行代码。配置文件必须以空行开头(不要问我为什么)。当我运行脚本时,文件开头的空白行现在有一个“?”字符。不知道它是从哪里来的 $computer = Read-Host -Prompt 'Computer Name: ' $Path = "\\" + $computer + "\c$\Program Files\WinMagic\SecureDoc-NT\UserDa

这可能是我不熟悉的unicode问题。 我已经创建了一个脚本来修补一堆正在工作的机器,该修补程序包括向配置文件(.ini)添加一行代码。配置文件必须以空行开头(不要问我为什么)。当我运行脚本时,文件开头的空白行现在有一个“?”字符。不知道它是从哪里来的

$computer = Read-Host -Prompt 'Computer Name: ' 
$Path = "\\" + $computer + "\c$\Program Files\WinMagic\SecureDoc-NT\UserData\"
$fileName = $path + "SecurDoc.ini"

$content = Get-Content $fileName
$content[1] += "`r`nWMGAutoFix=1"
$content | set-content $fileName

Powershell默认情况下将文件编码为ANSI。解决方案是使用以下方法:

$content | Set-Content $filename -encoding Unicode

你的PowerShell版本是什么?源文件的编码是什么?您可以在前后添加示例吗?另外,看起来你在第二行加了一个空行,而不是第一行。多亏你给我指出了正确的方向,我才弄明白。默认情况下,脚本将文件转换为ANSI,我总是在我的机器上检查我已经运行脚本的文件的编码。我可以在另一台机器上进行检查,编码是Unicode。我在设置内容之后添加了-encoding Unicode标志,现在可以正常工作了。谢谢