我有以下批处理语句:
for /f "delims=" %%x in (file.lst) do set "offendingfile=%%x"
尽管出于一些非常奇怪的原因,当它被调用时,它会输出:
"C:Windowscalc.exe "
而不是
"C:Windowscalc.exe"
由于有一个尾随空格,我无法将其与批处理文件中的任何其他语句一起正确使用,有人知道它为什么会这样做以及如何修复吗,因为它一直让我抓狂!
您的file.lst
文件的文件名后面有空格吗?
我用file.lst的c:windowscalc.exe
进行了检查,结果是正确的,但如果file.lst文件包含c:windowscalc.exe<SPACE>
,则输出与您获得的输出相同(也是预期的输出)。
我认为for
语句的delims=
部分正在删除使用空格作为分隔符的默认行为。如果你去掉那部分,那么它应该去掉后面的空白:
for /f %%x in (file.lst) do set "offendingfile=%%x"