您的位置首页百科问答

批处理-for遍历搜索

批处理-for遍历搜索

批处理,也称为批处理脚本,英文译为BATCH,批处理文件后缀BAT就取的前三个字母。它的构成没有固定格式, 只要遵守以下这条就ok了:每一行可视为一个命令,每个命令里可以含多条子命令,从第一行开始执行,直到最后一行结束,它运行的平台是DOS(磁盘操作系统)。

for /r 参数 遍历搜格式:FOR /R [[drive:]path] %%variable IN (set) DO command [command-parameters]

检查以 [drive:]path 为根的目录树,指向每个目录中的 FOR 语句。如果在 /R 后没有指定目录,则使用当目录。如果集仅为一个单点(.)字符,则枚举该目录树。

这个R可以理解为recursive的缩写,也就是递归的意思。所谓递归简单点来说就是对其目录及其子目录的所有文件行操作。

示例1:

@echo off for /r c:\ %%i in (*.exe) do echo %%i pause

把 C 盘根目录,和每个目录的子目录下面全部的EXE 文件都列出来。

示例2:

@echo off for /r c:\ %%i in (*.exe) do echo %%i pause

这个命令前面没加那个 c:\ (也就是搜索路径),这样它就会以当前目录为搜索路径bat文件放在桌面运行如下。

如果 set 中为具体文件名,不含通配符,则枚举该目录树(即列举该目录及其下面的所有子目录),而不、set 中的指定文件是否存在。这与前面所说的单点(.)枚举目录树是一个道理,单点代表当前目录,也可视为一文件。

示例3:

@echo off for /r c:\ %%i in (boot.ini) do echo %%i pause

执行后,它不管boot.ini是否存在而将枚举c 盘所有目录。