批处理搜索全盘文件

方法一:(模糊查找)
这个批处理虽然简单,但是能实现很多功能,不管你有多少个盘一律通吃,在找到文件后会把文件所在的具体位置给你显示出来,让你能一目了然...如果你要搜索gho文件,就输入“.gho”然后回车就搞定了。
@echo off
echo icyheart制作
title 文件搜索
color 2a
echo.
:loop
set /p filename=请输入要查找的文件名:
echo.
echo 文件搜索中,请耐心等待...
set alldrive=c d e f g h i j k l m n o p q r s t u v w x y z
for %%i in (%alldrive%) do if exist %%i:\ dir /s /b %%i:| find "%filename%">>results.txt
type results.txt
del results.txt
echo 搜索完毕
echo.
echo.
echo 继续查询请输入y,退出请输入n
echo.
echo.======================================
set /p choice=请输入您的选择:
if %choice%==y goto loop
if %choice%==n goto end
pause>nul
:end
exit
方法二:(只搜索当前目录)
@echo off
set /p filename=请输入要查找文件扩展名:
echo.
echo 文件搜索中,请耐心等待...
for /f "delims=" %%i in ('dir /b /a-d /s "*.%filename%"') do echo %%i
pause
方法三:(精确查找,需要输入准确的文件名,包括扩展名)
@echo off
set /p file=请输入要查询的文件:
for /f "delims=. tokens=1,2" %%c in ("%file%") do wmic datafile where "extension='%%d' and filename='%%c'" get name
pause
方法四:(搜索1.bat并跳转到该文件所在目录)
@echo off
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 (
for /f "delims=" %%i in ('dir /s/a/b/a-d "%%a:\1.bat" 2^>nul') do (
cmd /k cd /d "%%~dpi"
)
)

批处理全盘搜索指定文件获取其完整路径:【方案一】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:\nul (
for /f "delims=" %%b in ('dir /a-d /s /b "%%a:\*%FileName%" 2^>nul') do (
if /i "%%~nxb" equ "%FileName%" (
echo.%%b
)
)
)
)
pause

批处理全盘搜索指定文件获取其完整路径: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:\nul (
pushd %%a:\
for /r %%b in ("*%FileName%") do (
if /i "%%~nxb" equ "%FileName%" (
echo.%%b
)
)
popd
)
)
pause










相关文档
最新文档