佛山 小吃:FOR的参数/D和/R

来源:百度文库 编辑:偶看新闻 时间:2024/06/11 16:17:47
 

第三节 FORDO

一、概述

DO后面跟一个或一组命令。表示每一次FOR循环需要执行的命令。

有时候,DO后面的命令过于复杂,需要用括号括起来表示一个整体。

二、类型

1、一个命令:

for %%i in (?o*.mp3) do echo %%i

2、一组命令:

for /r d: %%i in (QQ.exe) do if exist %%i start %%i

1、 需要括号:

@echo off

color 0A

for /l %%a in (1,2,8) do (

    for /l %%b in (3,3,18) do (

         for /l %%c in (100,-15,30) do (

        echo %%a       %%b         %%c

        )

    )

)

pause

三、运用

(省略,请看第五节《FOR命令的综合应用》)

第四节 FOR的参数

FOR常见的参数有/D/R/F/L。内容比较多,需要逐一消化。

课时建议:

参数/D/R/L用一课时;参数/F用四课时,其中eol=skip=用一课时,delims=tokens=usebackq各用一课时。下面逐一讲解。

一、/D参数——查询目录

格式:

FOR /D %%I       IN (Command1)   DO Command2

用法:

一句话总结:/D用于搜索目录(或文件夹)。

注意:

只搜索文件夹,不搜索文件。只搜索指定目录,不搜索子目录。

211:搜索C盘下的所有目录:

@echo off

for /d %%i in (c:\*) do echo %%i

pause

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

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

@echo off

for /d %%i in (*) do echo %%i

pause

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

练习:

1、请比较查询命令DIRFOR /D

2、请编写一个只搜索文件名而不搜索文件夹名的批处理。

二、/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搜索的范围从当前目录或指定目录开始,深入所有子目录。无孔不入,大有活要见人死要见尸掘地三尺也要把你找出来的气势。

221:搜索当前目录下的所有文件。

@echo off

for /r %%i in (*) do echo %%i

pause

运行结果将显示,当前目录下的所有文件以及该目录下所有子目录里的所有文件。

222:搜索C盘里所有的扩展名为exe的文件。

@echo off

for /r c:\ %%i in (*.exe) do echo %%i

pause

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

例:搜索C盘千千静听播放器:

@echo off

for /r c:\ %%i in (ttplayer.exe) do if exist %%i start %%i

pause

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

检查了一下,无法读出长文件名,思考中。如果你的千千静听默认安装在C盘,更简单的方法是:

start %Progra~1%\ttplayer\ttplayer.exe

讲解:

一句命令就足够了,效率啊!我的在D盘都找出来了!

用到环境变量的内容。不支持长文件名所以使用了%Progra~1%代替Program Files

223:搜索F盘里所有目录。

@echo off

for /r f:\ %%i in (.) do echo %%i

pause

运行结果将显示F盘以及F盘下所有的文件夹。显示结果后面都带有一个点号不懂如何消除,一直在思考一个完美的方式,请诸位指点。

练习:

1、请说说FOR /R的作用。

2、请比较参数/D/R

3、请编写一个全盘搜索QQ.exe的批处理。

4、请编写一个搜索C盘里所有名字带“SYS”的文件夹的批处理。 注:此文非本人原创,属转载!!