
[分享]超級文件文檔搜索批處理出于個人需要寫的,可搜索指定路徑下的所有文件,默認是批處理所在目錄下查找,可搜索指定文件和文字。比系統自帶搜索更快,可搜索系統和隱藏文件。不過文字注釋上可能有些壇友看不懂,不好意思了,看代碼吧,可能有些朋友會用到,就貼上來。
- @echo off
- mode con lines=17 cols=60
- color 1f
- title 文件索引 chenlian--20081218
- rem 本程序的特點是可以快速的查找你想找的文件、文件夾、和文字,并可快速打開搜索的結果。
- rem 例如查找i love you的文件或文件夾,或者在指定文件類型里查找含有i love you文字的文件,并迅速打開。
- rem 可以單個或全部刪除搜索到的文件。
- rem 2007-08-30 @XP CMD
- :0
- cls
- echo.
- echo 本機所有磁盤列表:
- 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[ 默認查找路徑: %cpan% ]&echo.
- echo在哪里查找?[請輸入一個盤符或拖入待查找的文件夾]
- 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(查找內容前加[]忽略子目錄,加[/]在指定文件中找文字.)
- echo(查找文檔時可用通配符號或[?]進行模糊查找. )
- echo請輸入要查找的文檔名[如:*.doc; temp.txt]
- set/p ziliao= 或者輸入想在某類文檔中查找的文字[如:/工作安排; /第十七章] :
- cls
- echo.&echo.&echo執行中!
- echo在路徑[ %cpan% ]中搜索[ %ziliao% ].
- echo.&echo正在查找,請稍候 ...
- set ziliao=%ziliao:=%
- if %ziliao%==: goto 0
- if exist 查找結果.txt del/f/q 查找結果.txt
- if exist 查找結果.czjg del/f/q 查找結果.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%)
- >查找結果.txt echo 查找時間: [ %date:~0,10% %time:~0,5% ]
- >>查找結果.txt echo.
- >>查找結果.txt echo 查找目錄: [ %cpan% ]
- >>查找結果.txt echo.
- >>查找結果.txt echo 子 目 錄: [ %zimulu% ]
- >>查找結果.txt echo.
- >>查找結果.txt echo 文件類型: [ %neixin% ]
- >>查找結果.txt echo.
- >>查找結果.txt echo 查找內容: [ %ziliao% ]
- >>查找結果.txt echo.
- >>查找結果.txt echo 查找結果:%dxx%
- >>查找結果.txt echo ──────────────────────
- %gotoend%
- :1
- %dirrs% %cpan%*%ziliao%*|findstr /n .>>查找結果.txt
- >>查找結果.txt echo ──────────end────────────
- if %ERRORLEVEL%==1 cls&echo.&echo搜索類型: [ 文件或文件夾 ]&echo.&echo搜索目錄: [ %cpan% ]&echo.&echo子 目 錄: [ %zimulu% ]&echo.&echo結果: 沒有找到與%ziliao%有關的文件或文件夾!&echo.&echo按任意鍵返回... &pause>nul&goto 0
- start %SystemRoot%system32notepad.exe 查找結果.txt
- cls
- for /f tokens=1 delims=: %%i in ('findstr /n /c:──────────end──────────── 查找結果.txt') do (set /a hhao=%%i-13)
- echo.&echo查找路徑: [ %cpan% ]
- echo.&echo查找內容: [ %ziliao% ]
- echo.&echo找到結果: [ %hhao%個 ]
- echo.&echo請在彈出的窗口在查看詳細內容.
- echo.&echo如需打開相應文件,請輸入查找結果前對應的數字并回車.
- echo.&echo數字前加[d]刪除對應的文件;[0]刪除所有搜索到的文件.
- echo.&echo數字前加[.]用記事本打開對應的文件.&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 . 查找結果.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%: 查找結果.txt') do (%sta% %cpan:~0,1%:%%i)
- goto czwj
- :2
- cls
- echo.&echo擴展名前加[.]關鍵詞被視為整體;后加[/x]區分大小寫.&echo.
- echo文件擴展名默認為TXT格式.&echo.
- set adi=/i&set dxx=(搜索不分大小寫)
- set sdc=
- set leixin=txt
- set/p leixin= 請輸入文件擴展名(如htm,保持默認請直接回車) :
- echo.&echo正在搜索字符串,請稍候 ...
- if /i %leixin%==/x set leixin=:&set dxx=(搜索區分大小寫)&set adi=
- if /i %leixin:~-2,2%==/x set leixin=%leixin:~0,-2%&set dxx=(搜索區分大小寫)&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 查找結果.txt 查找結果.czjg
- findstr %ads% %adi% %sdc%%ziliao% %cpan%*.%leixin%|findstr /n .>>查找結果.czjg 2>nul
- >>查找結果.czjg echo ──────────end────────────
- if %ERRORLEVEL%==1 cls&echo.&echo搜索類型: [ 文檔字符串 ]&echo.&echo搜索目錄: [ %cpan% ]&echo.&echo子 目 錄: [ %zimulu% ]&echo.&echo文件類型: [ .%leixin% ]&echo.&echo結果: 沒有找到存在%ziliao%的文檔! 請檢查大小寫再試試.&echo.&echo按任意鍵返回... &pause>nul&goto 0
- ren 查找結果.czjg 查找結果.txt
- start %SystemRoot%system32notepad.exe 查找結果.txt
- cls
- for /f tokens=1 delims=: %%i in ('findstr /n /c:──────────end──────────── 查找結果.txt') do (set /a hhao=%%i-13)
- echo.&echo查找路徑: [ %cpan% ]
- echo.&echo字符內容: [ %ziliao% ]
- echo.&echo找到結果: [ %hhao%條 ]
- echo.&echo請在彈出的窗口在查看詳細內容.
- echo.&echo如需查看文件請輸入查找結果前對應的數字并回車.
- echo.&echo數字前加[.]用記事本打開;[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 . 查找結果.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%: 查找結果.txt') do %sta% %cpan:~0,1%:%%i
- goto dk
nclick="copycode($('code0'));">復制代碼
[
最后由 clamber 于 -1-10 18:03]