批处理(bat)实现全盘搜索指定文件获取其完整路径方法大全
废话不多说,直接上代码,额,想用的话,自己保存成bat文件即可。
【方案一】for/f+dir
@echooff
rem指定待搜索的文件
set"FileName=BatHome_Batcher.txt"
echo正在搜索,请稍候...
for%%ain(CDEFGHIJKLMNOPQRSTUVWXYZ)do(
ifexist%%a:\(
for/f"delims="%%bin('dir/a-d/s/b"%%a:\*%FileName%"2^>nul')do(
if/i"%%~nxb"equ"%FileName%"(
echo,%%b
)
)
)
)
【方案二】for/r(比for/f+dir效率高,但不会遍历隐藏文件)
@echooff rem指定待搜索的文件 set"FileName=BatHome_Batcher.txt" echo正在搜索,请稍候... for%%ain(CDEFGHIJKLMNOPQRSTUVWXYZ)do( ifexist%%a:\( pushd%%a:\ for/r%%bin(*%FileName%)do( if/i"%%~nxb"equ"%FileName%"( echo,%%b ) ) popd ) )
【方案三】WMIC(Win2000/WinXPHOME版、WinXP精简版可能不支持)
@echooff
rem指定待搜索的文件
set"FileName=BatHome_Batcher.txt"
echo正在搜索,请稍候...
for%%ain("%FileName%")do(
set"nName=%%~na"
set"xName=%%~xa"
)
set"xName=%xName:~1%"
for/f"skip=1delims="%%ain('wmicdatafilewhere"filename='%nName%'andExtension='%xName%'"getname')do(
echo,%%a
)
【方案四】使用Windows7系统自带的where命令
@echooff
rem指定待搜索的文件
set"FileName=BatHome_Batcher.txt"
echo正在搜索,请稍候...
for%%ain(CDEFGHIJKLMNOPQRSTUVWXYZ)do(
ifexist%%a:\(
for/f"delims="%%bin('where/r%%a:"%FileName%"2^>nul')do(
if/i"%%~nxb"equ"%FileName%"(
echo,%%b
)
)
)
)