对于声明 - 非常奇怪的输出(批处理文件)

时间:2011-06-03 14:47:20

标签: windows batch-file

我有以下批处理声明:

for /f "delims=" %%x in (file.lst) do set "offendingfile=%%x"

虽然出于一些非常奇怪的原因,当它被称为输出时:

"C:\Windows\calc.exe "

而不是

"C:\Windows\calc.exe"

由于有一个尾随空格,我无法正确使用批处理文件中的任何其他语句,有没有人知道它为什么会这样做以及如何解决这个问题,因为它一直让我疯狂!

2 个答案:

答案 0 :(得分:1)

您的file.lst文件在文件名后面是否有尾随空格?

我使用file.lst进行了检查:c:\windows\calc.exe并且输出正确,但如果file.lst文件包含c:\windows\calc.exe<SPACE>,则输出与您获得的相同(并且是预期产出也是如此)。

答案 1 :(得分:0)

我相信delims=语句的for部分正在删除使用空格作为分隔符的默认行为。如果删除该部分,则应删除尾随空白:

for /f %%x in (file.lst) do set "offendingfile=%%x"