2017-06-14 108 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

相关问题