2017-06-14 66 views
2

我遇到了在批處理腳本中從文本文件中設置變量的問題。 文本文件中只有一行,它是testabc批處理腳本從文本文件中設置變量不起作用

劇本是

set /p p_password=<c:\temp\passport.txt 
echo %p_password% 

回聲語句應該具有testabc,但實際上是具有以下■t它。

我甚至有for環試了一下

for /f "delims=" %%a in (c:\temp\passport.txt) do set p_password=%%a 
echo %p_password% 

我仍然得到同樣的輸出; ■t

任何幫助,非常感謝。

+1

文本文件是否可以保存爲帶有[BOM](https://en.wikipedia.org/wiki/Byte_order_mark)的UTF-8? –

回答

1

是的,我可以確認使用不同的文件編碼格式將解決此問題。

使用在你的問題中提到的輸入的文本文件,並保存使用UltraEdit文本文件,結果下面列出了不同的編碼格式:

  • ANSI/ASCII = testabc
  • UTF-8 = ∩╗┐testabc
  • UTF-16 =  ■t
  • UTF-8 - NO BOM = testabc
  • UTF-16 - NO BOM = t
  • UTF-16 - 大端= ■ 
  • UTF-16 - 大端 - NO BOM = (空字符串)
  • 的Unicode - ASCII轉義= testabc

正如評論者先前提到的那樣,您的文本文件似乎已被保存爲Byte order mark

相關問題