2010-07-13 68 views
0

我想写一个批处理脚本,将驱动器映射输出到文本文件,所以我可以稍后恢复它,一旦我清除机器。我想出了这个for循环来做到这一点,但是当它的批处理脚本与运行命令本身不同时,它的行为是不同的。相同FOR循环行为不同(WinXP)

这是实际代码行:

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 

回答

2

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

相关问题