This is my code so far:
for /f "tokens=1 eol=," %%f IN ("1,2,3,4") do (
echo .
echo %%f
)
I’m expecting that to produce:
.
1
.
2
.
etc…
But instead I get:
.
1
And that’s it. What am I missing?
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
You’ve misunderstood the options.
tokens=1means you only want the first token on each line. You want all of the tokens on the line.eol=,means you want to interpret a comma as the beginning of an end of line comment. You want to usedelims=,instead to indicate the comma is the delimiter (instead of the default value of whitespace).FOR /F is primarily for operating on lines in a file. You’re not doing that. You’re operating on a single string, so Rubens’ answer is closer to what you want:
However, in theory, you should be able to say something like:
This works as well, but probably doesn’t scale in the way you want. Note that you have to escape the comma in the string using the ^ character, and you have to specify the tokens you want and then use the subsequent variables %g, %h and %i to get them.