Назад | Перейти на главную страницу

Разрыв строки в пакетном файле

У меня есть простой командный файл (запретить. летучая мышь) со следующим содержанием:

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