6

I have a simple batch file (forbat.bat), with the following content:

FOR /F "tokens=4 delims=," %%G IN ("deposit,$4500,123.4,12-AUG-09") DO @echo Date paid %%G

When I run this batch file, I can get the result.

Now, I want to break the lines into a few lines, to make them easier to read. This is what I did:

FOR /F "tokens=4 delims=," %%G IN ("deposit,$4500,123.4,12-AUG-09") 
 DO 
 @echo Date paid %%G 

This time, I got a "The syntax of the command is incorrect" error.

It seems that I must have missed some semicolons and slashes when introducing the line breaks. How to make the above code work in windows batch file?

Graviton
  • 2,865
  • 12
  • 42
  • 64

3 Answers3

8

As Dennis said, you can use the caret, but you mustn't have spaces at the start of the following lines:

FOR /F "tokens=4 delims=," %%G IN ("deposit,$4500,123.4,12-AUG-09") ^ 
DO ^ 
echo Date paid %%G

Otherwise it doesn't work. However, if you are willing to leave the DO in the original line, you can use parentheses to delimit a block

FOR /F "tokens=4 delims=," %%G IN ("deposit,$4500,123.4,12-AUG-09") DO (
   @echo Date paid %%G
)
Joey
  • 1,853
  • 11
  • 13
2

You need a carat "^" for a line continuation character at the end of each line where commands are split.

FOR /F "tokens=4 delims=," %%G IN ("deposit,$4500,123.4,12-AUG-09") ^
DO ^
echo Date paid %%G
Dennis Williamson
  • 62,149
  • 16
  • 116
  • 151
1

This is the correct syntax, that works on my Windows XP machine:

FOR /F "tokens=4 delims=," %%G IN ("deposit,$4500,123.4,12-AUG-09") DO (  
@echo Date paid %%G 
@echo hiforbat ) 

This is the output:

Date paid 12-AUG-09
hi
Graviton
  • 2,865
  • 12
  • 42
  • 64