用于设置文本文件中的变量不起作用的批处理脚本

时间:2017-06-14 21:03:25

标签: batch-file

我遇到了在批处理脚本中从文本文件设置变量的问题。 文本文件中只有一行,它是testabc

脚本是

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

echo语句应该有testabc,但它实际上有■t以下。

我甚至尝试使用for循环

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

我仍然得到相同的输出; ■t

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

是的,我可以确认使用不同的文件编码格式可以解决这个问题。

使用问题中提到的输入文本文件,并使用UltraEdit保存文本文件,下面列出了不同编码格式的结果:

  • ANSI / ASCII = testabc
  • UTF-8 = ∩╗┐testabc
  • UTF-16 =  ■t
  • UTF-8 - 无BOM = testabc
  • UTF-16 - 无BOM = t
  • UTF-16 - Big Endian = ■ 
  • UTF-16 - Big Endian - 没有BOM = (空字符串)
  • Unicode - ASCII Escaped = testabc

如前面评论员所述,您的文字文件似乎已保存为Byte order mark