详细说明及例子 :
对一组文件中的每一个文件执行某个特定命令
普通格式:
FOR %variable IN (set) DO command [command-parameters]
- %variable 指定一个单一字母可替换的参数 。
- (set) 指定一个或一组文件 。可以使用通配符 。
- command 指定对每个文件执行的命令 。
- command-parameters 为特定命令指定参数或命令行开关 。
范例:
如c:/temp/myfile.txt内容如下 , 共4行
- ;a1,a2,a3,a4,a5
- b1,b2,b3,b4,b5
- c1 c2 c3 c4 c5
- d1,d2,d3,d4,d5
扩展格式:
FOR /D %variable IN (set) DO command [command-parameters]
如果集中包含通配符 , 则指定与目录名匹配 , 而不与文件名匹配(只搜索指定目录下的目录 , 不再搜索指定目录下的目录的子目录 , 不搜索文件名) 。
例:for /d %i in (*) do @echo %i 结果:是当前目录下的目录

文章插图
FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]
检查以 [drive:]path 为根的目录树 , 指向每个目录中的 FOR 语句 。如果在 /R 后没有指定目录规范 , 则使用当前目录 。如果集仅为一个单点(.)字符 , 则枚举该目录树 。
例:for /r %i in (*.txt) do @echo %i 列举当前目录下的所有txt文件:

文章插图
不指定目录即为当前目录
例:for /r . %i in (.) do @echo %i 列举当前目录下的所有目录 , 含子目录:

文章插图
例:for /r . %i in (5.txt) do @echo %i 列举当前目录下所有5.txt的文件:注意“子目录”下没此文件 , 但依然列出来了 , 因为“子目录”-“电影2”下有5.txt文件

文章插图
例:for /r c:/tmp %i in (5.txt) do @echo %i 列举c:/tmp目录下所有的5.txt文件 , 但此目录及子目录下根本没有5.txt文件 , 结果列出来了目录结构

文章插图
FOR /L %variable IN (start,step,end) DO command [command-parameters]
【DOS批处理命令:for循环详细说明及例子】该集表示以增量形式从开始到结束的一个数字序列 。因此 , (1,1,5)将产生序列 1 2 3 4 5 , (5,-1,1)将产生序列(5 4 3 2 1)
- 例子1:for /l %i in (1,1,5) do @echo %i 输出:1 2 3 4 5
- 例子2:for /l %i in (5,-1,1) do @echo %i 输出:5 4 3 2 1
- 例子3:for /l %i in (1,3,9) do @echo %i 输出:1 4 7
推荐阅读
- linux du命令
- Linux中 service 和 systemctl 命令比较
- Centos7使用ping命令对普通用户提权
- 低成本防御网站 DDOS 攻击
- Linux之mv命令
- Linux sed命令
- Linux netstat命令详解
- Linux su和sudo
- 白帽黑客之DOS基础
- Windows命令行包管理工具scoop使用教程
