Команда FOR / F читает строки файла и разделяет их в токены в соответствии с параметром "tokens = delims =".По умолчанию «токены» относятся только к первому токену в строке, а «разделители» включают пробелы и символы табуляции (если они не указаны).Эта команда FOR:
for /f "usebackq" %%a in ("%TraderWorkspaceFile%") do echo %%a
будет показывать:
ABC
ADD
ABCSS
, тогда как
for /f "tokens=2 usebackq" %%a in ("%TraderWorkspaceFile%") do echo %%a
будет показывать:
1000
2000
3000
Обратите внимание, что«delims =» совпадает со значением по умолчанию, поэтому он бесполезен, но «delims =» (без разделителей) - это трюк, заключающий в первый токен всю строку.
for /f "usebackq delims=" %%a in ("%TraderWorkspaceFile%") do (
set line=%%a
call :processToken
)
goto :eof
:processToken
for /f "tokens=1 delims= " %%f in ("%line%") do (
echo Got one token: %%f
)
goto :eof
будет правильно отображатьсяпервый токен каждой строки , хотя:
:processToken
for /f %%f in ("%line%") do (
echo Got one token: %%f
)
goto :eof
будет делать то же самое ...
Вы также можете получить отдельный пробел или табуляциюразделить токены через параметры подпрограммы следующим образом:
:processLine
echo First token: %1, second token: %2, third one: %3
goto :eof
, который должен быть вызван следующим образом (вместо call: processToken):
call :processLine %line%