我有以下批处理声明:
for /f "delims=" %%x in (file.lst) do set "offendingfile=%%x"
虽然出于一些非常奇怪的原因,当它被称为输出时:
"C:\Windows\calc.exe "
而不是
"C:\Windows\calc.exe"
由于有一个尾随空格,我无法正确使用批处理文件中的任何其他语句,有没有人知道它为什么会这样做以及如何解决这个问题,因为它一直让我疯狂!
答案 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"