2010-07-13 109 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循環中的每個變量添加了另一個%,現在它完美的作品。