Подтвердить что ты не робот

Пакетный файл FOR/f tokens

Может кто-нибудь объяснить, как работает следующий код, строчно. Я действительно потерян. Я пытался узнать, как использовать команду FOR, но я этого не понимаю.

@echo off

for /f "tokens=* delims= " %%f in (myfile) do (
  set line=%%f
  call :processToken
  )
  goto :eof

:processToken

  for /f "tokens=1* delims=/" %%a in ("%line%") do (
  echo Got one token: %%a
  set line=%%b
  )
  if not "%line%" == "" goto :processToken
  goto :eof
4b9b3361

Ответ 1

for /f "tokens=* delims= " %%f in (myfile) do

Это считывает файл по строкам, удаляя ведущие пробелы (спасибо, jeb).

set line=%%f

устанавливает переменную line в только что прочитанную строку и

call :procesToken

вызывает подпрограмму, которая что-то делает с линией

:processToken

- начало упомянутой выше подпрограммы.

for /f "tokens=1* delims=/" %%a in ("%line%") do

разделит строку на /, но остановит токенизацию после первого токена.

echo Got one token: %%a

выведет этот первый токен и

set line=%%b

будет устанавливать переменную line в остальную часть строки.

if not "%line%" == "" goto :processToken

И если line еще не пуст (т.е. все обработанные токены), он возвращается к началу, продолжая остальную часть строки.