任何人都可以逐行解释以下代码的确切工作方式。我真的迷路了。我一直在努力学习如何使用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
答案 0 :(得分:36)
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
尚未为空(即处理完所有令牌),则返回到开头,继续该行的其余部分。