1

我目前正在使用 powershell 来创建一个 .bat 脚本。

我将文本放入 .bat 脚本中>>

例如,

Write "start program xxx" >> script.bat

但是当我尝试使用 cmd 执行这​​个 script.bat 时,它说:“■s”无法识别......等等。在 powershell 中它说:“þp”无法识别......

所以我猜想 >> script 把特殊字符放在行首。如果有人得到这方面的信息。那些“■s”和“þp”是什么。

4

1 回答 1

4

文件重定向运算符(>>等)将写入以 UTF-16 编码的文本。如果文件已经包含不同编码的文本,那么一切都会混淆(而且我根本不使用cmd.exe理解 UTF-16。

更容易Out-File-encoding参数一起使用来指定一致的东西。使用-appendswitch 参数追加而不是覆盖。

例如。

"Some text" | Out-File -encoding ASCII -append -FilePath 'script.bat`

(如果您发现自己编写了相同的out-file和参数,则将其放入辅助高级函数中,该函数将读取管道输入以封装out-file.)

于 2013-07-08T10:35:35.833 回答