I wondered why the following CMD script was not processing some lines ...
for /f %a in (test.txt) do @echo %a
... with this sort of test where the semicolon is a field separator. All the lines were processed when the field separator is a space, tab or comma.
When I ran the script, the
echo command is only called for the first line. It turns out that, by default,
for /f regards any line starting with a semicolon to be a comment and ignores it. It's similar to using:
for /f "eol=;" %a in (test.txt) do @echo %a
Note that the Microsoft documentation doesn't state the default for the eol keyword.