For语句-非常奇怪的输出(Batch Files)



我有以下批处理语句:

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"

最新更新