最基本形态:

在cmd 窗口中:for %I in (command1) do command2

在批处理文件中:for %%I in (command1) do command2

在批处理中,FOR命令的常见参数有/D、/R、/F、/L。 
 
一、/D参数——查询目录
格式:
FOR /D %%I       IN (Command1)   DO Command2
用法:
总结:/D用于搜索目录(或文件夹)。
注意:
只搜索文件夹,不搜索文件。只搜索指定目录,不搜索子目录。

例一:搜索C盘下所有目录:

@echo off
for /d %%i in (c:/*) do echo %%i
pause

运行结果是显示C盘下所有的文件夹名字,但不包含子目录。

例二:搜索当前目录中的文件夹

@echo off
for /d %%i in (*) do echo %%i
pause

运行结果是显示批处理所在目录下的所有文件夹。

二、/R参数——遍历搜索
格式:
FOR /R %%I       IN (Command1)   DO Command2
FOR /R [[drive:]path] %%variable IN (set)    DO command [command-parameters]
注意:
/R后可以指定路径[[drive:]path]。
用法:
总结:遍历所有地址搜索文件。
包括搜索所有子目录。比/D搜索的范围要大。遍历?递归?全部,每个角落。
通常,/D只搜索当前目录或者指定目录,而不深入子目录。
而/R搜索的范围从当前目录或指定目录开始,深入所有子目录。无孔不入,大有活要见人死要见尸掘地三尺也要把你找出来的气势。

例三:搜索当前目录下的所有exe文件。

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

运行结果将显示C盘和C盘里各个文件夹下的exe文件。杀毒很有用哦。

例四:搜索C盘酷狗音乐:

@echo off
for /r c:/ %%i in (KuGou.exe) do if exist %%i start %%i
pause

运行结果将打开酷狗音乐,前提是你的酷狗音乐装在C盘。使用if exist的目的是避免文件不存在时不断的提示错误。

例五:搜索F盘里所有目录

@echo off
for /r f:/ %%i in (.) do echo %%i
pause

运行结果将显示F盘以及F盘下所有的文件夹

------------------------------------------------------’以下在编程时用不到,可忽略--------------------------------------------------

三、/L 参数——序列
格式:
FOR /R %%I       IN (Command1)   DO Command2
FOR /L %%variable IN (start,step,end) DO command [command-parameters]
用法:
总结:给指定对象建立序列。
/L参数是以增量形式从开始到结束的一个数字序列的迭代数值范围。
使用迭代变量设置起始值 (Start#),然后逐步执行一组范围的值,直到该值超过所设置的终止值 (End#)。
/L 将通过对 Start# 与 End# 进行比较来执行迭代变量。如果 Start# 小于 End#,就会执行该命令。如果迭代变量超过 End#,则命令解释程序退出此循环。还可以使用负的 Step# 以递减数值的方式逐步执行此范围内的值。
用FOR给1到5这几个数字排一下顺序。

例六:递增方式。

@echo off
for /l %%i in (1,1,5) do @echo %%i
pause

运行结果是生成序列:1 2 3 4 5。

例七:递减方式。

@echo off
for /l %%i in (1,-1,5) do @echo %%i
pause

运行结果是生成序列:5 4 3 2 1。

注意:
集合(start,step,end)中,start表示序列的起始值,end表示序列的结束值,两者共同决定了序列的取值范围。

step控制着start和end的生成方式。当step为正时是递增序列,当step为负时是递减序列。如果step=0则循环下去?

例八:start,step,end三者的数值关系。

@echo off
for /l %%i in (2,2,13) do echo %%i
pause>nul

运行结果分行显示2、4、6、8、10、12

讲解:
start,step,end三者的数值关系是:
start > end
当step为正时,start+step决定%%i的最小取值范围,end决定%%i的最大取值范围。
当step为负时,start+step决定%%i的最大取值范围,end决定%%i的最小取值范围。

例九:创建三个以数字1、2、3命名的文件夹。

@echo off
for /l %%i in (1,1,3) do md %%i
exit>nul

运行结果将在当前目录下创建三个以数字命名的文件夹。

四、/F 参数——切分字符串

delims=符号集 分隔符

格式:
FOR /F "Delims=符号集" %%I       IN (Command1)   DO Command2
用法:
总结:忽略分隔符,切分字符串。
1)以文本中的标点符号来定义分隔符。分隔符通常就是空格键和跳格键。
2)被定义为分隔符的标点符号将被忽略(隐藏),如果分隔符后面还有内容,默认该分隔符与该内容将被一同忽略,除非使用tokens定义显示。因此,该命令可以用来屏蔽标点符号和提取第一列的信息。
3)被定义的分隔符前后内容将变成独立的小节(或列),这些小节可以为FOR命令编辑,比如使用tokens提取。
 
注意:
符号集,指用做分隔符的标点符号可以是一个,也可以是多个。
当delims定义多个分隔符时,符号之间不用空格,用做分隔符的空格要放到最后。
 
首先要弄清楚分隔符。分隔符就是用delims指定的标点符号了,该标点符号就是文本中的标点符号。注意:这里的分隔符并非文本中的所有标点符号,而是指被delims指定的标点符号。如下图

其次要弄清楚分节、分列。我们把每行两个分隔符之间的文字内容称为小节、列。注意:是分隔符之间,而非标点符号之间

DOS 命令For精解示例的更多相关文章

  1. Replace 删除、替换函数精解示例

    '************************************************************************* '**模 块 名:Replace函数精解示例 '* ...

  2. Filter 数组过滤函数精解示例

    '************************************************************************* '**模 块 名:Filter 数组过滤函数精解示 ...

  3. Join函数 及Split函数精解示例

    '************************************************************************* '**模 块 名:Join函数 及Split函数精 ...

  4. 常用DOS命令参数详解

    一.DIR命令的格式: dir [D:][PATH][NAME][[/A][:attrib]][/o:[sorted][/s][/b][/l][/c[h] (1)dir /a:attrib 缺省包含所 ...

  5. 【转载】恢复误删文件--DOS命令应用实例(一)

    <电脑爱好者>报转载第一辑第二篇之恢复误删文件--DOS命令应用实例(一)                             恢复误删文件--DOS命令应用实例(一) 上期我们讲述了 ...

  6. 命令精解之DOS批处理

    前言 最近对于批处理技术的探讨比较热,也有不少好的批处理程序发布,但是如果没有一定的相关知识恐怕不容易看懂和理解这些批处理文件,也就更谈不上自己动手编写了,古语云:“授人以鱼,不如授人以渔.”因为网上 ...

  7. DOS命令详解

    DOS命令详解 命令 \? 可以进入命令帮助 1.md命令创建目录. MKDIR [drive:]pathMD [drive:]path 如果命令扩展被启用,MKDIR 会如下改变: 如果需要,MKD ...

  8. [转] DOS命令for用法详解

    [From] http://www.jb51.net/article/31284.htm for帮助文档 对一组文件中的每一个文件执行某个特定命令. FOR %variable IN (set) DO ...

  9. dos下的edit命令使用详解

    dos下的edit命令使用详解 来源:网络 作者:未知 edit命令是一个简单的编辑软件,我们经常用它来编辑一些程序和批处理文件. 比如,我想在c盘根目录下编辑一个简单的批处理文件,要求无论当前盘和当 ...

随机推荐

  1. PHP中的变量与常量详解

    几乎所有的编程语言都会涉及到变量和常量这两个概念,PHP也不例外.本节将介绍PHP语言中的变量和常量的应用方法. 一.什么是变量和常量 在程序执行的过程中,变量存储的值可以随时改变,而常量存储的值是不 ...

  2. 【荐】如何正确理解PHP之include,include_once,require,require_once等包含作用域

    我们为大家总结的PHP include作用域的问题包括:PHP include 变量作用域和函数.类的作用域等方面的问题.希望对大家有所帮助. 很多程序员在使用PHP语言进行实际编程时,通常只会关注P ...

  3. struts2 国际化

    国际化概述: 软件国际化:一个软件根据来访者地区不同,显示不同语言. 国际化: * 必须有一组资源包: * 一组属性文件命名: 基本名称_语言(小写)_国家(大写).properties * 如:me ...

  4. 进程互斥和fork

    自父进程继承 进程的资格(真实(real)/有效(effective)/已保存(saved) 用户号(UIDs)和组号(GIDs)) 环境(environment) 堆栈 内存 打开文件的描述符(注意 ...

  5. strust1与strust2,springmvc三者之间的区别?

    strust1与struts2的区别    1.struts2是基于webWork的一个全新的框架,比struts1学习更方便    Struts2主要是改进了Struts1的servlet和acti ...

  6. push 到下一界面明显卡顿的现象

    今天搭建界面,界面间的跳转使用了 push方法,结果发现界面间转换时有明显的卡顿现象,并没有做过数据请求之类的处理,所以感觉好神奇.以前好像也遇到过,当时在push 到的下级界面加个背景色.现在重新这 ...

  7. React学习笔记-1-什么是react,react环境搭建以及第一个react实例

    什么是react?react的官方网站:https://facebook.github.io/react/下图这个就是就是react的标志,非常巧合的是他和我们的github的编辑器Atom非常相似. ...

  8. 网络编程之getaddrinfo

    IPv4中使用gethostbyname()函数完成主机名到地址解析,但是该API不允许调用者指定所需地址类型的任何信息,返回的结构只包含 了用于存储IPv4地址的空间.为了解决该问题,IPv6中引入 ...

  9. volatile关键字详解

    本文系转载,原文链接:http://www.cnblogs.com/Chase/archive/2010/07/05/1771700.html,如有侵权,请联系我:534624117@qq.com 引 ...

  10. CentOS7— Redis安装(转和延续)

    Part I. Redis安装(转载部分) 一.安装 wget http://download.redis.io/redis-stable.tar.gz tar xvzf redis-stable.t ...