文档详情

CMD命令行高级教程精选合编---第二章 DOS循环for命令详解.doc

发布:2017-10-04约7.4千字共12页下载文档
文本预览下载声明
CMD命令行高级教程精选合编---第二章 DOS循环:for命令详解 第二章 DOS循环:for命令详解 讲FOR之前呢,咋先告诉各位新手朋友,如果你有什么命令不懂,直接在CMD下面输入: name /? 这样的格式来看系统给出的帮助文件,比如for /? 就会把FOR命令的帮助全部显示出来!当然许多菜鸟都看不懂....所以才会有那么多批处理文章!!!!俺也照顾菜鸟,把FOR命令用我自己的方式说明下! 正式开始: 一、基本格式 FOR %%variable IN (set) DO command [command-parameters] ?? %%variable?? 指定一个单一字母表示可替换的参数。 ?? (set) ?? 指定一个或一组文件。可以使用通配符。 ?? 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盘根目录下的全部目录名字打印出来,而文件名字一个也不显示! 在来一个,比如我们要把当前路径下文件夹的名字只有1-3个字母的打出来 @echo off for /d %%i in (???) do echo %%i pause 这样的话如果你当前目录下有目录名字只有1-3个字母的,就会显示出来,没有就不显示了 这里解释下*号和?号的作用,*号表示任意N个字符,而?号只表示任意一个字符 知道作用了,给大家个思考题目! @echo off for /d %%i in (window?) do echo %%i pause 保存到C盘下执行,会显示什么呢?自己看吧! 显示:windows /D参数只能显示当前目录下的目录名字,这个大家要注意! 三、参数 /R FOR /R [[drive:]path] %%variable IN (set) DO command [command-parameters] 检查以 [drive:]path 为根的目录树,指向每个目录中的 FOR 语句。如果在 /R 后没有指定目录,则使用当前 目录。如果集仅为一个单点(.)字符,则枚举该目录树。 递归 上面我们知道,/D只能显示当前路径下的目录名字,那么现在这个/R也是和目录有关,他能干嘛呢?放心他比/D强大多了! 他可以把当前或者你指定路径下的文件名字全部读取,注意是文件名字,有什么用看例子! 请注意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 参数不一样了吧!这个命令前面没加那个C:\也就是搜索路径,这样他就会以当前目录为搜索路径,比如你这个BAT你把他放在d:\test目录下执行,那么他就会把D:\test目录和他下面的子目录的全部EXE文件列出来!!! 例: @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 用这条命令搜索文件真不错。。。。。。 这个参数大家应
显示全部
相似文档