2013-03-15 24 views
4

我試圖使用回聲3純文本行到文件Powershell的當產生未知字符:Powershell的呼應到文件

echo "#Generated" > psftp.scp 
echo "put test.txt" >> psftp.scp 
echo "quit" >> psftp.scp 

然後我使用psftp.exe批處理模式運行該文件(執行命令在SFTP中),但psftp錯誤輸出無效字符:

psftp: unknown command " ■#" 

我在想什麼?我可以在Windows記事本中手動輸入文件,並且它(psftp)可以工作。無論我將第一行更改爲(#Generated),它都會在第一部分的塊符號中出現此錯誤。

我試過查看記事本++ w /「顯示所有符號」上的文件,但只看到CR & LF在行的末尾是正常的。

+4

其他人可以驗證這一點,但它可能是bom字符或窗口包括在字符串之後的東西。如果您使用'Out-File',則可以使用'-Append'添加文本和'-Encoding'來指定正確的編碼。 – 2013-03-15 18:05:47

+0

fwiw,字符是0xFF,0xFE,然後是字母,但是它們之間有0x00(我不_think_那是unicode) – mbourgon 2016-07-20 18:19:13

+0

而且@FrodeF的評論。作品。沒有-encoding ascii,它在文件的開頭仍然有奇怪的字符。 – mbourgon 2016-07-20 18:34:00

回答

3

嘗試使用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 
+0

我最終做了「默認」編碼,它很好。 – JBurace 2013-03-15 18:34:55