相同的FOR循环行为不同(WinXP)

时间:2010-07-13 17:09:16

标签: networking loops batch-file windows-xp

我正在尝试编写一个批处理脚本,其中包含将驱动器映射输出到文本文件的部分,因此我可以在以后擦除计算机时将其还原。我想出了这个for循环来实现它,但是当它的批处理脚本与运行命令本身时它的表现不同。

这是实际的代码行:

FOR /F "tokens=1,2" %i in (H:\mappings2.dat) do @echo %i %j

当我将命令从脚本复制并粘贴到命令窗口时,它可以正常工作。当我从命令窗口运行批处理脚本时,它输出:

FOR /F "tokens=1,2" \mappings2.dat) do @echo j
\mappings2.dat) was unexpected at this time.

我猜有一些小技巧可以解决它,但我无法在谷歌上找到任何东西......

哦,如果你在这里想知道那段剧本:

net use > H:\mappings0.dat

findstr /r [A-Z]: H:\mappings0.dat > H:\mappings2.dat

FOR /F "tokens=1,2" %i in (H:\mappings2.dat) do @echo %i %j >> H:\mappings1.dat

1 个答案:

答案 0 :(得分:2)

没关系,我想通了......因为循环变量必须有双百分号,而命令行版本只对循环变量使用单个百分号...我在for循环中为每个变量添加了另一个%现在它完美无缺。