for /R 语句扩展

上面章节中介绍了 for 语句基础语法以及 for /D 扩展的用法。

本章节将介绍 for /R 扩展的用法。/R 语法如下:

FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]

将递归进入根目录树 [Drive:]Path,在树的每个目录中执行 for 语句。如果在 /R 后没有指定目录,则认为是当前目录。如果 set 只是一个句点(.),则只枚举目录树。

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

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

输出结果:

C:\Users\Administrator\Desktop\bat> test.bat
"C:\Users\Administrator\Desktop\bat\call.bat"   
"C:\Users\Administrator\Desktop\bat\for.txt"    
"C:\Users\Administrator\Desktop\bat\hello.bat"  
"C:\Users\Administrator\Desktop\bat\test.bat"   
"C:\Users\Administrator\Desktop\bat\tmp\for.txt"
"C:\Users\Administrator\Desktop\bat\tmp\ipconfig.txt"
"C:\Users\Administrator\Desktop\bat\tmp\ping.txt"    
"C:\Users\Administrator\Desktop\bat\tmp\for\for.txt" 
"C:\Users\Administrator\Desktop\bat\tmp\for\if.txt"  
请按任意键继续. . .

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

实例:输出 D 盘下面所有的目录

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

输出结果:

C:\Users\Administrator\Desktop\bat> test.bat
d:\.
d:\360Downloads\.
d:\360Downloads\Software\.
d:\360Downloads\Software\漏洞补丁目录\.
d:\360Downloads\Software\漏洞补丁目录\sxs\.
d:\360Downloads\wpcache\.
d:\360Downloads\wpcache\srvsetwp\.
d:\360Rec\.
d:\Config.Msi\.
d:\developerDoc\.
d:\developerDoc\文档\.
d:\developerLibs\.
... 省略 ...

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

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

输出结果:

C:\Users\Administrator\Desktop\bat> test.bat
c:\AMD\WU-CCC2\ccc2_install\WULaunchApp.exe
c:\AMD\WU-CCC2\ccc2_install\Support64\CCC2App64.exe
c:\AMD\WU-CCC2\ccc2_install\VC12RTx64\vcredist_x64.exe
c:\AMD\WU-CCC2\ccc2_install\VC12RTx86\vcredist_x86.exe
c:\AMD\WU-CCC2\ccc2_install\VC13RTx64\vcredist_x64.exe
... 省略 ...

运行结果将显示C盘和C盘里各个文件夹下的exe文件。

实例:搜索 C 盘是否有 notepad.exe 可执行文件。如果存在,则使用 start 启动 notepad.exe 程序。

@echo off
for /r c:/ %%i in (notepad.exe) do (
    if exist %%i (
        echo 找到了 notepad.exe
        REM 去启动 notepad.exe
        start %%i
        goto end
    )
)
echo 没有找到 notepad.exe

:end

输出结果:

C:\Users\Administrator\Desktop\bat> test.bat
找到了 notepad.exe


说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号