转载

终极dos批处理循环命令详解
格式:FOR [参数] %%变量名 IN (相关文件或命令)   DO 执行的命令
  作用:对一个或一组文件,字符串或命令结果中的每一个对象执行特定命令,达到我们想要的结果。
  注意:在批处理文件中使用 FOR 命令时,指定变量请使用 %%variable,而不要用 %variable。变量名称是区分大小写的,所以 %i 不同于 %I.
  关于:for命令可以带参数或不带参数,带参数时支持以下参数:/d /l /r /f
  下面分别解释一下

  ===
  零:无参数时:
  ---
  FOR %variable IN (set) DO command [command-parameters]
  %variable 指定一个单一字母可替换的参数。
  (set)      指定一个或一组文件。可以使用通配符。
  command    指定对每个文件执行的命令。
  command-parameters
  为特定命令指定参数或命令行开关。

  TTT示例:
  for %%i in (t*.*) do echo %%i --显示当前目录下与t*.*相匹配的文件(只显示文件名,不显示路径) 
  for %%i in (d:\mydocuments\*.doc) do @echo %%i --显示d:\mydocuments\目录下与*.doc相匹配的文件
  ===
  一、参数 /d (参数只能显示当前目录下的目录名字)
  ---
  格式:FOR /D %variable IN (set) DO command [command-parameters]
  这个参数主要用于目录搜索,不会搜索文件,/D 参数只能显示当前目录下的目录名字。(TTT特别说明:只会搜索指定目录下的目录,不会搜索再下一级的目录。)

  TTT示例:
  for /d %%i in (c:\*) do echo %%i --显示c盘根目录下的所有目录
  for /d %%i in (???) do echo %%i --显示当前目录下名字只有1-3个字母的目录

  ===
  二、参数 /R (搜索指定路径及所有子目录中与set相符合的所有文件)
  ---
  格式:FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]
  此命令会搜索指定路径及所有子目录中与set相符合的所有文件,注意是指定路径及所有子目录。

  1、set中的文件名如果含有通配符(?或*),则列举/R参数指定的目录及其下面的所用子目录中与set相符合的所有文件,无相符文件的目录则不列举。
  2、如果set中为具体文件名,不含通配符,则枚举该目录树(即列举该目录及其下面的所有子目录)(并在后面加上具体的文件名),而不管set中的指定文件是否存在。
  例:for /r c:\ %%i in (*.exe) do echo %%i --把C盘根目录,和每个目录的子目录下面全部的EXE文件都列出来了!!!!

  TTT示例:
  for /r c:\ %%i in (boot.ini) do echo %%i --枚举了c盘所有目录
  for /r d:\backup %%i in (1) do echo %%i --枚举d\backup目录
  for /r c:\ %%i in (boot.ini) do if exist %%i echo %%i --很好的搜索命令,列举boot.ini存在的目录

  ===
  三、参数 /L (该集表示以增量形式从开始到结束的一个数字序列。可以使用负的 Step)
  ---
  格式:FOR /L %variable IN (start,step,end) DO command [command-parameters]
  该集表示以增量形式从开始到结束的一个数字序列。可以使用负的 Step

  TTT示例:
  for /l %%i in (1,1,5) do @echo %%i --输出1 2 3 4 5
  for /l %%i in (1,2,10) do @echo %%i --输出1,3,5,7,9 
  for /l %%i in (100,-20,1) do @echo %%i --输出100,80,60,40,20
  for /l %%i in (1,1,5) do start cmd --打开5个CMD窗口
  for /l %%i in (1,1,5) do md %%i --建立从1~5共5个文件夹
  for /l %%i in (1,1,5) do rd /q %%i --删除从1~5共5个文件夹

四、参数 /F (使用文件解析来处理命令输出、字符串及文件内容。)
  ---
  这个参数是最难的,参数又多,先简单的解释一下:for命令带这个参数可以分析文件内容,字符串内容或某一命令输出的结果,并通过设置option得我们想要的结果。
  以下是某高手的解释,感觉有点太专业了,自认为不太容易理解,也列一下:
  [迭代及文件解析--使用文件解析来处理命令输出、字符串及文件内容。使用迭代变量定义要检查的内容或字符串,并使用各种options选项进一步修改解析方式。使用options令牌选项指定哪些令牌应该作为迭代变量传递。
  请注意:在没有使用令牌选项时,/F 将只检查第一个令牌。文件解析过程包括读取输出、字符串或文件内容,将其分成独立的文本行以及再将每行解析成零个或更多个令牌。然后通过设置为令牌的迭代变量值,调用 for 循环。
  默认情况下,/F 传递每个文件每一行的第一个空白分隔符号。跳过空行。]
  +++
  格式:
  FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]
  FOR /F ["options"] %variable IN ("string") DO command [command-parameters]
  FOR /F ["options"] %variable IN ('command') DO command [command-parameters]

  或者,如果有 usebackq 选项:
  FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]
  FOR /F ["options"] %variable IN ("string") DO command [command-parameters]
  FOR /F ["options"] %variable IN ('command') DO command [command-parameters]

  TTT说明:以上是WinXP系统中的帮助内容,你可以注意到,两者完全相同,这其实是系统的错误,第二段“如果有 usebackq 选项:”应该以下的内容:
  FOR /F ["options"] %variable IN ("file-set") DO command [command-parameters]
  FOR /F ["options"] %variable IN ('string') DO command [command-parameters]
  FOR /F ["options"] %variable IN (`command`) DO command [command-parameters] --(`command`中的引号为反引号,是键盘上数字1左面的那个键)

cmd批处理的/d/l/r/f相关推荐

  1. 查看网段内正在使用的IP以及ip定位 ——CMD批处理循环

    在运行里面输入cmd回车进入命令行界面输入以下命令: For /L %i in (0,1,254) DO ping 192.168.1.%i  >>E:/IP.txt 使用时只要替换掉对应 ...

  2. bat/cmd批处理程序设计教程

    序言 这是一篇技术教程,我真心诚意会用很简单的文字表达清楚自己的意思,只要你识字就能看懂,就能学到知识.我写这篇教程的目的,是让每一个看过这些文字的朋友记住一句话:如果爱可以让事情变的更简单,那么就让 ...

  3. linux 注释批处理,Linux_批处理 正则表达式(findstr) 整理,语法 findstr [/b] [/e] [/l] [/r] [/s] - phpStudy...

    批处理 正则表达式(findstr) 整理 语法 findstr [/b] [/e] [/l] [/r] [/s] [/i] [/x] [/v] [/n] [/m] [/o] [/p] [/offli ...

  4. Linux学习-17-rpm查询软件包命令(-q、-qa、-i、-p、-l、-f、-R)

    7.4 Linux rpm查询软件包命令(-q.-qa.-i.-p.-l.-f.-R) rpm 命令还可用来对 RPM 软件包做查询操作,具体包括: 查询软件包是否已安装: 查询系统中所有已安装的软件 ...

  5. 计算机想ping一下网络,请问下大家: 用 ping 命令ping /-n/-t/-l/-a/-f/-i/-v/-r/-s/-j/-k/-w/-1...

    ping命令参数详细解释 -a 将目标的机器标识转换为ip地址 -t 若使用者不人为中断会不断的ping下去 -n count 要求ping命令连续发送数据包,直到发出并接收到count个请求 -d ...

  6. Uva 3767 Dynamic len(set(a[L:R])) 树套树

    Dynamic len(set(a[L:R])) Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 https://uva.onlinejudge.org/in ...

  7. android layout(l, t, r, b);,服务器里的a,t,l,r,b是什么意思? Android编程中关于layout(l,t,r,b)函数的问题...

    导航:网站首页 > 服务器里的a,t,l,r,b是什么意思? Android编程中关于layout(l,t,r,b)函数的问题 服务器里的a,t,l,r,b是什么意思? Android编程中关于 ...

  8. 实现linux下 ls命令 (-a,-l,-R,-r,-i)

    ls各个命令的功能 -a : 显示所有文件,连同隐藏文件一起列出来 -l : 一行只显示一个文件的详细信息 -R: 递归输出文件 -r : 逆序输出文件名 -i : 输出文件的 i 节点的索引信息 遇 ...

  9. C语言中在常数后面加U、L、F的功能

    --------------------------------------------- -- 时间:2019-02-17 -- 创建人:Ruo_Xiao -- 邮箱:xclsoftware@163 ...

最新文章

  1. java mysql 是否插入 成功_您如何确定使用Java和MySQL插入或更新是否成功?
  2. python语言入门r_小结:jieba分词的Python与R语言基础用法介绍
  3. VS2005 常用快捷键
  4. c语言用getchar函数输入两个字符c1,c语言:用getchar函数读入两个字符给c1,c2,用putchar和printf输出。思考问题...
  5. tensorflow 加载模型
  6. tp5 iis7 404 解决方案
  7. java ssl证书_Java安全教程–创建SSL连接和证书的分步指南
  8. java学习(158):线程的常用方法yield,优先级
  9. twisted系列教程八–延迟的诗
  10. mysql cpu高 重启无效_解决mysqlcpu高的问题
  11. 什么是SQL Server DATEPART()方法?
  12. JAVA(int...i)问题
  13. 怎么在知网上下载pdf格式的论文
  14. 端到端无人驾驶文献学习:ChauffeurNet: Learning to Drive by Imitating the Best and Synthesizing the Worst
  15. Java基础篇--IO
  16. 微信开发:申请测试公众号
  17. live2d_二次元 | live2d为你的网站博客增加萌萌哒的看板娘
  18. docker 清理磁盘
  19. python安装配置教程win10_win10怎么安装python_win10安装python的图文步骤
  20. php 如何将富文本内容输出到word里面且添加页眉和页脚

热门文章

  1. PHP获取某一天前后任意时间
  2. 免校准的电量计量芯片_技术 | 免校准电能计量芯片,让家电智能化更简单
  3. 数字格式化 * 有一个小数,123.45678 要求保留两位
  4. php爆路径方法收集
  5. 蓝牙芯片----BK3431开发笔记------RW stack中添加自定义服务教程(4)
  6. 全景图像转换软件(Pano2VR Pro 5中文版) v5.2.5
  7. 风变编程学python靠谱吗_风变编程学习Python的感受
  8. 【文本】HTML5 Canvas小项目:为坐标轴添加数字标签(带刻度线)
  9. 项目实战:小米商城官网及秒杀高仿(html+css+js)
  10. 在ubuntu下连接e-SATA硬盘