批处理(bat)实现全盘搜索指定文件获取其完整路径方法大全
程序员文章站
2022-03-22 16:32:20
废话不多说,直接上代码,额,想用的话,自己保存成bat文件即可。
【方案一】for /f + dir
@echo off
rem 指定待搜索的文件
se...
废话不多说,直接上代码,额,想用的话,自己保存成bat文件即可。
【方案一】for /f + dir
@echo off rem 指定待搜索的文件 set "filename=bathome_batcher.txt" echo 正在搜索,请稍候... for %%a in (c d e f g h i j k l m n o p q r s t u v w x y z) do ( if exist %%a:\ ( for /f "delims=" %%b in ('dir /a-d /s /b "%%a:\*%filename%" 2^>nul') do ( if /i "%%~nxb" equ "%filename%" ( echo,%%b ) ) ) )
【方案二】for /r(比 for /f + dir 效率高,但不会遍历隐藏文件)
@echo off rem 指定待搜索的文件 set "filename=bathome_batcher.txt" echo 正在搜索,请稍候... for %%a in (c d e f g h i j k l m n o p q r s t u v w x y z) do ( if exist %%a:\ ( pushd %%a:\ for /r %%b in (*%filename%) do ( if /i "%%~nxb" equ "%filename%" ( echo,%%b ) ) popd ) )
【方案三】wmic(win2000/winxp home版、winxp 精简版可能不支持)
@echo off rem 指定待搜索的文件 set "filename=bathome_batcher.txt" echo 正在搜索,请稍候... for %%a in ("%filename%") do ( set "nname=%%~na" set "xname=%%~xa" ) set "xname=%xname:~1%" for /f "skip=1 delims=" %%a in ('wmic datafile where "filename='%nname%' and extension='%xname%'" get name') do ( echo,%%a )
【方案四】使用 windows7 系统自带的 where 命令
@echo off rem 指定待搜索的文件 set "filename=bathome_batcher.txt" echo 正在搜索,请稍候... for %%a in (c d e f g h i j k l m n o p q r s t u v w x y z) do ( if exist %%a:\ ( for /f "delims=" %%b in ('where /r %%a: "%filename%" 2^>nul') do ( if /i "%%~nxb" equ "%filename%" ( echo,%%b ) ) ) )
上一篇: 东汉末年军阀割据的始作俑者真的是刘焉吗?刘焉做了什么?
下一篇: 实现FTP整站上传的批处理代码