Powershell回显文件时生成未知字符

JBu*_*ace 7 powershell

我正在尝试使用Powershell将3条纯文本行回显到文件中:

echo "#Generated" > psftp.scp
echo "put test.txt" >> psftp.scp
echo "quit" >> psftp.scp
Run Code Online (Sandbox Code Playgroud)

然后,我使用psftp.exe批处理模式运行文件(在SFTP中执行命令),但是psftp看到无效字符时出错:

psftp: unknown command " ?#"
Run Code Online (Sandbox Code Playgroud)

我想念什么?我可以在Windows记事本中手动键入文件,并且它(psftp)可以工作。无论我将第一行更改为(#Generated),第一部分中的块符号都会出现此错误。

我尝试在带“显示所有符号”的NotePad ++中查看文件,但在正常行的末尾仅看到CR和LF。

mjo*_*nor 5

尝试使用set / add-content而不是重定向。您可能还需要设置编码。

"#Generated" | set-content psftp.scp -Encoding Ascii
"put test.txt" | add-content psftp.scp -Encoding Ascii
"quit" | add-content psftp.scp -Encoding Ascii
Run Code Online (Sandbox Code Playgroud)

  • 您知道*为什么* Powershell会这样吗?为什么将cmdline字符串重定向到文件时,为什么插入看似随机的字符? (2认同)