usebackq tokens through ss64 loop for delims contents commands batch windows batch-file for-loop token

windows - tokens - usebackq



Lote de archivos para/tokens (1)

¿Puede alguien explicar exactamente cómo funciona el siguiente código, línea por línea? Estoy realmente perdido. He estado tratando de aprender a usar el comando FOR pero no entiendo esto.

@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


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

Esto lee un archivo línea por línea, eliminando los espacios iniciales (gracias, jeb).

set line=%%f

establece entonces la variable de line a la línea que acaba de leer y

call :procesToken

Llama a una subrutina que hace algo con la línea.

:processToken

Es el inicio de la subrutina mencionada anteriormente.

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

luego dividirá la línea en / , pero deteniendo la tokenización después del primer token.

echo Got one token: %%a

dará salida a ese primer token y

set line=%%b

establecerá la variable de line al resto de la línea.

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

Y si la line aún no está vacía (es decir, todos los tokens procesados), vuelve al inicio, continuando con el resto de la línea.