У меня есть простой командный файл (запретить. летучая мышь) со следующим содержанием:
FOR /F "tokens=4 delims=," %%G IN ("deposit,$4500,123.4,12-AUG-09") DO @echo Date paid %%G
Когда я запускаю этот командный файл, я могу получить результат.
Теперь я хочу разбить строки на несколько строк, чтобы их было легче читать. Вот что я сделал:
FOR /F "tokens=4 delims=," %%G IN ("deposit,$4500,123.4,12-AUG-09")
DO
@echo Date paid %%G
На этот раз я получил ошибку «Неверный синтаксис команды».
Похоже, я пропустил некоторые точки с запятой и косую черту при вводе разрывов строк. Как заставить указанный выше код работать в пакетном файле Windows?
Как сказал Деннис, вы можете использовать каретку, но в начале следующих строк не должно быть пробелов:
FOR /F "tokens=4 delims=," %%G IN ("deposit,$4500,123.4,12-AUG-09") ^
DO ^
echo Date paid %%G
Иначе ничего не получится. Однако, если вы готовы оставить DO
в исходной строке вы можете использовать круглые скобки для разделения блока
FOR /F "tokens=4 delims=," %%G IN ("deposit,$4500,123.4,12-AUG-09") DO (
@echo Date paid %%G
)
Вам нужен карат "^
"для символа продолжения строки в конце каждой строки, где команды разделяются.
FOR /F "tokens=4 delims=," %%G IN ("deposit,$4500,123.4,12-AUG-09") ^
DO ^
echo Date paid %%G
Это правильный синтаксис, который работает на моем компьютере с Windows XP:
FOR /F "tokens=4 delims=," %%G IN ("deposit,$4500,123.4,12-AUG-09") DO (
@echo Date paid %%G
@echo hiforbat )
Это результат:
Date paid 12-AUG-09
hi