在集合中遍历条目是脚本的常见任务。它可以遍历目录中的文件,或者一次读取一行文本。

传统的GOTO语句


早期版本的DOS的老方法是使用标签和GOTO语句。虽然它对于通过命令行参数循环很有用,但现在已经不再使用了。

:args
SET arg=%~1
ECHO %arg%
SHIFT
GOTO :args

FOR


遍历文件或者文本更现代的方法是使用for命令。在我看来,for是DOS最强大的命令,也是最不常使用的命令之一。

FOR命令使用一个特殊的变量语法%,后跟一个字母,如%I。当批处理文件中使用此语法时,略有不同,需要两个百分号%%I。在编写脚本时,这是一个常见的错误来源。如果for循环因为语法错误退出,确认是否使用了%%I

遍历文件


FOR %I IN (%USERPROFILE%\*) DO @ECHO %I

遍历文件夹


FOR /D %I IN (%USERPROFILE%\*) DO @ECHO %I

递归遍历%TEMP%下所有的文件

FOR /R "%TEMP%" %I IN (*) DO @ECHO %I

递归遍历%TEMP%下所有的文件夹

FOR /R "%TEMP%" /D %I IN (*) DO @ECHO %I

一个例子