4

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?

4

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
)
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
  • It doesn't seem to work: I got a DO ^ thing printed out and that was it. – Graviton Jan 11 '10 at 7:10
  • It doesn't like any indentation or the @ sign apparently. – Dennis Williamson Jan 11 '10 at 7:36
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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.