Один и тот же цикл FOR действует по-разному (WinXP) - PullRequest
0 голосов
/ 13 июля 2010

Я пытаюсь написать пакетный скрипт с разделом, который выводит ваши сопоставления дисков в текстовый файл, чтобы я мог восстановить его позже, как только уничтожу машину.Я придумал этот цикл 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.

Я предполагаю, что есть какой-то маленький трюк, который это исправит, но я не могу найти что-нибудь в Google ...

о, если вам интересно вот этот раздел скрипта:

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 Ответ

2 голосов
/ 13 июля 2010

Неважно, я понял ... для переменных цикла должны быть двойные знаки процента, в то время как версии командной строки используют только один знак процента для переменных цикла ... Я добавил еще один% к каждой переменной в цикле for итеперь работает отлично.

...