Quelqu'un peut-il expliquer exactement comment fonctionne le code suivant, ligne par ligne. Je suis vraiment perdu. J'ai essayé d'apprendre à utiliser la commande FOR mais je ne comprends pas cela.
@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
Cela lit un fichier ligne par ligne, supprimant les espaces de tête (merci, jeb).
set line=%%f
définit ensuite la variable line
sur la ligne qui vient d'être lue et
call :procesToken
appelle un sous-programme qui fait quelque chose avec la ligne
:processToken
est le début du sous-programme mentionné ci-dessus.
for /f "tokens=1* delims=/" %%a in ("%line%") do
divisera alors la ligne à /
, mais arrêt de la tokenisation après le premier jeton.
echo Got one token: %%a
produira ce premier jeton et
set line=%%b
définira la variable line
sur le reste de la ligne.
if not "%line%" == "" goto :processToken
Et si line
n'est pas encore vide (c'est-à-dire tous les jetons traités), il revient au début, en continuant avec le reste de la ligne.