前言:
今天你们对“遍历文件名 bat”大约比较注重,朋友们都想要学习一些“遍历文件名 bat”的相关资讯。那么小编同时在网摘上收集了一些关于“遍历文件名 bat””的相关文章,希望大家能喜欢,咱们快快来学习一下吧!任务:整个硬盘各级文件夹查找某一类型的文件及获得其路径文本。
如果用操作系统的搜索功能,可以看到其路径,但会把一些文件名(不是文件类型)的文件也搜索出来,且无法简单得到其文本:
变通的方法就是用批处理bat。
首先要了解强大的for命令:
其中的for /r [[driver:]path] %var in (fileset) do comm就可以以[path]指定为起点的整个目录树进行处理。
核心的代码只有几行:
其中%%B是用“set /p b=输入查找文件扩展名:”输出的扩展名。
>>是管道命令,将命令输出作为文件的输入。
第一个for循环处理各个硬盘分区,第二个for循环遍历各级文件夹。
最终批处理运行的效果:
如果想在特定的文件b中查找特定的内容a可以使用以下bat语句:
type "%%b" | find /i "%a%" && echo %%b>>c:\virus.txt
|也是管道命令,将上一个命令的输出,作为下一个命令的输入,如"dir /a/b |more"就可以逐屏的显示dir命令所输出的信息。
附bat代码:
@echo offsetlocal enabledelayedexpansionecho. >c:\virus.txtcolor 3aecho.set /a n = 0set /p b=输入查找文件扩展名:if /i "%b%"=="" cls && goto fhecho 系统正在查找文件,请耐心等候......echo.for %%a in (C D E F) do (cd /d %%a:\ for /r %%b in (*.%b%) do ( if exist "%%b" ( echo %%b echo %%b>>c:\virus.txt set /a n+=1 echo 现查到%b%文件个数:!n! ) ))type c:\virus.txt | find /i "\" && goto noecho.echo 文件内容没找到!del c:\virus.txt>nul 2>nulecho.pauseexit:no::clsecho.echo 文件查找完毕并记录在c:\virus.txt中 !echo 现查到%b%文件总的个数:!n!echo.echo 是否打开文本查看记录 ?echo.echo 选择" Y "查看。 选择" N "退出。echo.set /p Choice=Y/N: IF /I '%Choice:~0,1%'=='y' goto AIF /I '%Choice:~0,1%'=='n' goto Bpauseexit:Astart c:\virus.txtexitpause:bexit
-End-
标签: #遍历文件名 bat