批文件FOR / F标记

任何人都可以请解释如何以下代码工作,逐行。 我真的迷路了 我一直在试图学习如何使用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 

 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变量设置为line的其余部分。

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

如果line还没有被清空(即所有的令牌被处理),它将返回到开始,继续行的其余部分。