批处理文件FOR / f令牌

时间:2011-08-06 11:41:16

标签: windows batch-file for-loop token

任何人都可以逐行解释以下代码的确切工作方式。我真的迷路了。我一直在努力学习如何使用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

1 个答案:

答案 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尚未为空(即处理完所有令牌),则返回到开头,继续该行的其余部分。