博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DOS循环 for命令
阅读量:5054 次
发布时间:2019-06-12

本文共 1333 字,大约阅读时间需要 4 分钟。

如果有什么命令不懂,可在CMD中输入:name /?

一、基本格式
FOR %%variable IN (set) DO command [command-parameters] 
%%variable 指定1个单1字母表示可替换的参数。
(set) 指定1个/1组文件。可用通配符。
command 指定对每个文件执行的命令。
command-parameters 为特定命令指定参数/命令行开关
参数:FOR有4个参数 /d /l /r /f 

二、参数/d

FOR /D %%variable IN (set) DO command [command-parameters]

如果Set包含通配符,将对与Set相匹配的每个目录(而不是指定目录中的文件组)执行指定的Command。
这个参数主要用于目录搜索,不会搜索文件:
@echo off
for /d %%i in (c:\*) do echo %%i
pause
运行会把C盘根目录下的全部目录名字打印出来,而文件名字一个也不显示!
@echo off
for /d %%i in (???) do echo %%i
pause
如果当前目录下有目录名字只有1-3个字母的,就会显示出来,没有就不显示了
/D参数只能显示当前目录下的目录名字!

 

三、参数/R

FOR /R [[drive:]path] %%variable IN (set) DO command [command-parameters]
检查以[drive:]path为根的目录树,指向每个目录中的FOR语句。如果在/R后没有指定目录,则使用当前目录。如果集仅为一个单点(.)字符,则枚举该目录树。
递归
/D 只能显示当前路径下的目录名字,/R可把当前/指定路径下的文件名字全部读取!
注意2点:
1、set中的文件名如果含通配符,则列举/R参数指定的目录及其下面的所用子目录中与set相符合的所有文件,无相符文件的目录则不列举。
2、set中为具体文件名,不含通配符,则枚举该目录树(即列举该目录及其下面的所有子目录),而不管set中的指定文件是否存在。这与前面所说的单点(.)枚举目录树是一个道理,单点代表当前目录,也可视为一个文件。
@echo off
for /r c:\ %%i in (*.exe) do echo %%i
pause
咱们把这个BAT保存到D盘随便哪里执行,就会看到,他把C盘根目录和每个目录的子目录下面全部的EXE文件都列出来了
@echo off
for /r %%i in (*.exe) do @echo %%i
pause
以当前目录为搜索路径
@echo off
for /r c:\ %%i in (boot.ini) do echo %%i
pause
枚举c盘所有目录,为了只列举boot.ini存在的目录,可改成:
@echo off
for /r c:\ %%i in (boot.ini) do if exist %%i echo %%i
pause
用这条命令搜索文件真不错...

 

 

 

 

转载于:https://www.cnblogs.com/cangyu/p/4705204.html

你可能感兴趣的文章
Maven中classifier
查看>>
Use Laravel/homestead 环境维护基于 brophp 开发的老项目
查看>>
测绘软件优缺点
查看>>
SQL优化(SQL TUNING)可大幅提升性能的实战技巧之一——让计划沿着索引跑
查看>>
pyhton自动化项目编码以及命名规范
查看>>
会声会影毛玻璃制作
查看>>
webmagic循环爬取
查看>>
用UltraEdit比較两个文件
查看>>
CCAccelerometerDelegate
查看>>
cocos2d-x游戏开发系列教程-坦克大战游戏之坦克和地图碰撞的检测下
查看>>
简单的sql注入
查看>>
c3p0连接池和dbutils的使用
查看>>
崩溃。。。
查看>>
POJ 2459 模拟
查看>>
unix basic command
查看>>
Spring MVC 自定义类型转换器
查看>>
ECS服务器搭建Discuz 邮箱设置,报错处理
查看>>
RHEL 6.5---SVN服务实现过程
查看>>
Install KR3 for AX SP3
查看>>
一个前端开发者换电脑的过程(git篇)
查看>>