
[分享]超級(jí)文件文檔搜索批處理出于個(gè)人需要寫的,可搜索指定路徑下的所有文件,默認(rèn)是批處理所在目錄下查找,可搜索指定文件和文字。比系統(tǒng)自帶搜索更快,可搜索系統(tǒng)和隱藏文件。不過文字注釋上可能有些壇友看不懂,不好意思了,看代碼吧,可能有些朋友會(huì)用到,就貼上來。
[ 最后由 clamber 于 -1-10 18:03]nclick="copycode($('code0'));">復(fù)制代碼
- @echo off
- mode con lines=17 cols=60
- color 1f
- title 文件索引 chenlian--20081218
- rem 本程序的特點(diǎn)是可以快速的查找你想找的文件、文件夾、和文字,并可快速打開搜索的結(jié)果。
- rem 例如查找i love you的文件或文件夾,或者在指定文件類型里查找含有i love you文字的文件,并迅速打開。
- rem 可以單個(gè)或全部刪除搜索到的文件。
- rem 2007-08-30 @XP CMD
- :0
- cls
- echo.
- echo 本機(jī)所有磁盤列表:
- echo -----------------------
- echo 盤符磁盤類型
- echo.
- setlocal enabledelayedexpansion
- for /f skip=1 tokens=1,2 delims= %%a in ('fsutil fsinfo drives^|find /v ') do (
- set aa=%%a
- set aa=!aa:~-2!
- for %%i in (!aa!) do fsutil fsinfo drivetype %%i
- )
- endlocal
- echo ------------------------
- set cpan=%~dp0
- set cpan=%cpan:~0,-1%
- echo[ 默認(rèn)查找路徑: %cpan% ]&echo.
- echo在哪里查找?[請(qǐng)輸入一個(gè)盤符或拖入待查找的文件夾]
- set/p cpan= :
- if %cpan:~3,1%== set cpan=%cpan:~1,-1%
- if not exist %cpan:~0,1%: echo 路徑不存在!任意鍵返回...&pause>nul&goto 0
- set ziliao=:
- echo(查找內(nèi)容前加[]忽略子目錄,加[/]在指定文件中找文字.)
- echo(查找文檔時(shí)可用通配符號(hào)或[?]進(jìn)行模糊查找. )
- echo請(qǐng)輸入要查找的文檔名[如:*.doc; temp.txt]
- set/p ziliao= 或者輸入想在某類文檔中查找的文字[如:/工作安排; /第十七章] :
- cls
- echo.&echo.&echo執(zhí)行中!
- echo在路徑[ %cpan% ]中搜索[ %ziliao% ].
- echo.&echo正在查找,請(qǐng)稍候 ...
- set ziliao=%ziliao:=%
- if %ziliao%==: goto 0
- if exist 查找結(jié)果.txt del/f/q 查找結(jié)果.txt
- if exist 查找結(jié)果.czjg del/f/q 查找結(jié)果.czjg
- set dirrs=dir/a/s/b/d
- set zimulu=查找
- set ads=/s
- if not %cpan:~2,1%== set cpan=%cpan:~0,1%:
- if %ziliao:~0,1%== (if %ziliao:~1,1%==/ (set ziliao=%ziliao:~2,100%&set zimulu=忽略&set ads=&goto 2) else (set ziliao=%ziliao:~1,100%&set dirrs=dir/a/b/d&set zimulu=忽略&goto cazao))
- if %ziliao:~1,1%== set dirrs=dir/a/b/d&set zimulu=忽略&set ads=
- if %ziliao:~0,1%==/ (if %ziliao:~1,1%== (set ziliao=%ziliao:~2,100%&set ads=&goto 2) else (set ziliao=%ziliao:~1,100%&goto 2)) else (if %ziliao:~0,1%== set ziliao=%ziliao:~1,100%)
- :cazao
- if %leixin%== (set neixin=全部) else (set neixin=.%leixin%)
- >查找結(jié)果.txt echo 查找時(shí)間: [ %date:~0,10% %time:~0,5% ]
- >>查找結(jié)果.txt echo.
- >>查找結(jié)果.txt echo 查找目錄: [ %cpan% ]
- >>查找結(jié)果.txt echo.
- >>查找結(jié)果.txt echo 子 目 錄: [ %zimulu% ]
- >>查找結(jié)果.txt echo.
- >>查找結(jié)果.txt echo 文件類型: [ %neixin% ]
- >>查找結(jié)果.txt echo.
- >>查找結(jié)果.txt echo 查找內(nèi)容: [ %ziliao% ]
- >>查找結(jié)果.txt echo.
- >>查找結(jié)果.txt echo 查找結(jié)果:%dxx%
- >>查找結(jié)果.txt echo ──────────────────────
- %gotoend%
- :1
- %dirrs% %cpan%*%ziliao%*|findstr /n .>>查找結(jié)果.txt
- >>查找結(jié)果.txt echo ──────────end────────────
- if %ERRORLEVEL%==1 cls&echo.&echo搜索類型: [ 文件或文件夾 ]&echo.&echo搜索目錄: [ %cpan% ]&echo.&echo子 目 錄: [ %zimulu% ]&echo.&echo結(jié)果: 沒有找到與%ziliao%有關(guān)的文件或文件夾!&echo.&echo按任意鍵返回... &pause>nul&goto 0
- start %SystemRoot%system32notepad.exe 查找結(jié)果.txt
- cls
- for /f tokens=1 delims=: %%i in ('findstr /n /c:──────────end──────────── 查找結(jié)果.txt') do (set /a hhao=%%i-13)
- echo.&echo查找路徑: [ %cpan% ]
- echo.&echo查找內(nèi)容: [ %ziliao% ]
- echo.&echo找到結(jié)果: [ %hhao%個(gè) ]
- echo.&echo請(qǐng)?jiān)趶棾龅拇翱谠诓榭丛敿?xì)內(nèi)容.
- echo.&echo如需打開相應(yīng)文件,請(qǐng)輸入查找結(jié)果前對(duì)應(yīng)的數(shù)字并回車.
- echo.&echo數(shù)字前加[d]刪除對(duì)應(yīng)的文件;[0]刪除所有搜索到的文件.
- echo.&echo數(shù)字前加[.]用記事本打開對(duì)應(yīng)的文件.&echo.
- :czwj
- set/p dakai= ^>^>:
- set sta=start
- set paus=
- if %dakai%==0 cls&echo下列文件刪除失敗:&set paus=pause&for /f tokens=3 delims=: %%i in ('findstr /b . 查找結(jié)果.txt') do (if exist %cpan:~0,1%:%%i del/q/f/a %cpan:~0,1%:%%i 2>nul)
- %paus%
- if %dakai:~0,1%==. set dakai=%dakai:~1,5%&set sta=notepad.exe
- if /i %dakai%==d goto 0
- if /i %dakai:~0,1%==d set dakai=%dakai:~1,5%&set sta=del/q/f/a
- set/a jisuan=10000-%dakai%
- if %jisuan%==10000 goto 0
- for /f tokens=3 delims=: %%i in ('findstr /b %dakai%: 查找結(jié)果.txt') do (%sta% %cpan:~0,1%:%%i)
- goto czwj
- :2
- cls
- echo.&echo擴(kuò)展名前加[.]關(guān)鍵詞被視為整體;后加[/x]區(qū)分大小寫.&echo.
- echo文件擴(kuò)展名默認(rèn)為TXT格式.&echo.
- set adi=/i&set dxx=(搜索不分大小寫)
- set sdc=
- set leixin=txt
- set/p leixin= 請(qǐng)輸入文件擴(kuò)展名(如htm,保持默認(rèn)請(qǐng)直接回車) :
- echo.&echo正在搜索字符串,請(qǐng)稍候 ...
- if /i %leixin%==/x set leixin=:&set dxx=(搜索區(qū)分大小寫)&set adi=
- if /i %leixin:~-2,2%==/x set leixin=%leixin:~0,-2%&set dxx=(搜索區(qū)分大小寫)&set adi=
- if %leixin:~0,1%==. (if %leixin:~-1%==. (set leixin=txt&set sdc=/c:) else (set leixin=%leixin:~1,100%&set sdc=/c:)) else (set sdc=)
- set gotoend=goto :eof
- call :cazao
- ren 查找結(jié)果.txt 查找結(jié)果.czjg
- findstr %ads% %adi% %sdc%%ziliao% %cpan%*.%leixin%|findstr /n .>>查找結(jié)果.czjg 2>nul
- >>查找結(jié)果.czjg echo ──────────end────────────
- if %ERRORLEVEL%==1 cls&echo.&echo搜索類型: [ 文檔字符串 ]&echo.&echo搜索目錄: [ %cpan% ]&echo.&echo子 目 錄: [ %zimulu% ]&echo.&echo文件類型: [ .%leixin% ]&echo.&echo結(jié)果: 沒有找到存在%ziliao%的文檔! 請(qǐng)檢查大小寫再試試.&echo.&echo按任意鍵返回... &pause>nul&goto 0
- ren 查找結(jié)果.czjg 查找結(jié)果.txt
- start %SystemRoot%system32notepad.exe 查找結(jié)果.txt
- cls
- for /f tokens=1 delims=: %%i in ('findstr /n /c:──────────end──────────── 查找結(jié)果.txt') do (set /a hhao=%%i-13)
- echo.&echo查找路徑: [ %cpan% ]
- echo.&echo字符內(nèi)容: [ %ziliao% ]
- echo.&echo找到結(jié)果: [ %hhao%條 ]
- echo.&echo請(qǐng)?jiān)趶棾龅拇翱谠诓榭丛敿?xì)內(nèi)容.
- echo.&echo如需查看文件請(qǐng)輸入查找結(jié)果前對(duì)應(yīng)的數(shù)字并回車.
- echo.&echo數(shù)字前加[.]用記事本打開;[d]刪除文件;[0]刪除所有!&echo.
- :dk
- set/p dakai= ^>^>:
- set sta=start
- set paus=
- if %dakai%==0 cls&echo下列文件刪除失敗:&set paus=pause&for /f tokens=3 delims=: %%i in ('findstr /b . 查找結(jié)果.txt') do (if exist %cpan:~0,1%:%%i del/q/f/a %cpan:~0,1%:%%i 2>nul)
- %paus%
- if %dakai:~0,1%==. set dakai=%dakai:~1,5%&set sta=notepad.exe
- if /i %dakai%==d goto 0
- if /i %dakai:~0,1%==d set dakai=%dakai:~1,5%&set sta=del/q/f/a
- set/a jisuan=10000-%dakai%
- if %jisuan%==10000 goto 0
- for /f tokens=3 delims=: %%i in ('findstr /b %dakai%: 查找結(jié)果.txt') do %sta% %cpan:~0,1%:%%i
- goto dk

