批处理之for 循环命令实现文件搜索 For /r 命令实现文件搜索 批处理是windows 系统中的一种脚本语言,由txt 文件直接编写,扩展名为.cmd 或.bat, 虽然作为一种脚本,但是灵活使用其中的命令对我们还是很有用的。 批处理中的for /r 命令能够实现本地文件的搜索功能,首先介绍一下 for /r 命令实现文件搜索的用法: For /r 路径 %%i in (关键字) do 要做的事 其中 路径 可以改为你自己要搜索的路径 如 C:\ 关键字则是你要搜索的文件名 如 qq.exe 或 上海滩.mp3 等等。do 后面接的是你要计算机循环做的事情 例如:搜索计算机上 C 盘所有文件并显示出来,代码如下: For /r C:\ %%i in (*) do echo %%i 运行效果: 结果将会列出 C 盘所有文件,因为通配符*代表一串字符,C 盘所有文件名都与*匹配。 例如:我要计算机搜索 上海滩.mp3 这首歌 (假如在 E 盘的某个位置)并将其绝对路径显示出来,代码如下: For /r E:\ %%i in (上海滩.mp3) do echo %%i 运行效果: 难道你的电脑上有这么多 上海滩.mp3 吗?其实不是 如果我们将代码改成: For /r E:\ %%i in (上海滩.mp3) do if ex ist %%i echo %%i 效果如何呢? 运行效果如下: 所以,当我们在利用for /r 命令搜索文件时,请加上if ex ist %%i 判断文件存在时才执行我们要循环做的事情 题目:搜索C 盘里所有的mp3 文件 代码如下: For /r C:\ %%a in (*.mp3) do if ex ist %%a echo %%a 其中 %%后面的字母a 可以用其他任意字母代替,如 %%s 、%%g 等等,但必须保证在一组for 循环命令中%%后面的字母必须相同,不能前面用%%i ,后面用%%a,这样是错误的。 运行效果: 如果只记得文件部分名称怎么办,如何搜索? 例如我只记得 一个MP3 文件名中有一个“爱”字,这个文件不知道放在磁盘什么位置,于是代码如下: For /r C:\ %%a in (*爱*.mp3) do if ex ist %%a echo %%a For /r D:\ %%a in (*爱*.mp3) do if ex ist %%a echo %%a For /r E:\ %%a in (*爱*.mp3) do if ex ist %%a echo %%a 根据你电脑有几个磁盘自行添加命令 运行效果: 结果将会列出所有带“爱”字的 MP3 文件 因此 当我们在设置关键字时需要灵活使用通配符*? *代表一串字符 ?代表一个字符,当设置的关键字最优时,能提高 for /r 命令帮我搜索文件的效率...