[持續更新]批處理全盤搜尋系列案例
阿新 • • 發佈:2018-12-23
雖然現在全盤搜尋相關的實用軟體很多也很強大,但是在手頭上無法下載的時候,批處理這個"資深前輩"又得派上用場了,接下來介紹的程式碼均為全盤範圍的批處理:
案例一、列出我的電腦中的所有硬碟分割槽
MS DOS123456 | @echo off title列出硬碟分割槽for%%iin(CDEFGHIJKLMNOPQRSTUVWXYZ)do(ifexist%%i:\echo %%i )pause>nul |
簡單說明:程式碼使用 for 依次迴圈讀取 C 到 Z,並加上:\進而使用 if exist 判斷路徑是否存在,存在則列印到螢幕上。
案例二、全盤查詢某個檔案
(來自我的百度回答)
知友問:
不知道檔案路徑,只知道名字,怎麼製作 bat 執行檔案?
如題,要做 1 個開啟檔案的 bat,知道是用 star +路徑。但是我沒有路徑只知道名字,而且我這個電腦沒有那個檔案。是學校的機子。。。求一個指令可以搜尋直接執行,就像選單中的”執行“那樣
我給出的程式碼:
MS DOS1234567891011121314 | @echo off :startclsset/pfilename=請輸入你要開啟的檔名(包括字尾):echo= echo 全盤查詢%filename%中,請稍後...... for%%iin(CDEFGHIJKLMNOPQRSTUVWXYZ)do(ifexist%%i:\pushd%%i:\&&for/r.%%ain(%filename%)do(ifexist"%%a"start"""%%a"))echo %filename%全盤查詢完畢,任意鍵開始下一個檔案的查詢...... pause>nulgotostart |
簡單說明:在案例一的基礎上嵌套了一個 for /r 遍歷目錄迴圈,但存在某一個分割槽的時候,則執行內嵌的 for 迴圈,遍歷分割槽搜尋關鍵字,若找到含有關鍵字的檔案則開啟(其實那個判斷檔案是否存在有點多此一舉,為了程式碼不出錯我還是加上了)。
案例三、全盤搜尋並刪除包含關鍵字的所有檔案
(來自我的百度回答)
知友問:
Dos 批量刪除檔名帶有~$的.doc 檔案 請看問題內容
我的電腦裡大量的帶有~$的.doc 檔案
想用 DOS 命令手動刪除
資料夾搜 這個辦法的 別湊熱鬧
回答 修改 Offic 先選項 也別湊熱鬧
我給出的答案:
以下程式碼儲存為 bat 檔案,執行後全盤搜尋符合你要求的 doc 檔案,然後刪除,並將刪除結果寫到批處理同目錄的 result.log,為避免誤刪除,已將刪除功能遮蔽,僅顯示目標檔案具體位置,若要讓刪除生效,直接將程式碼第四行的【echo】刪除即可,希望對你有用:
123456 | @echo off for%%iin(CDEFGHIJKLMNOPQRSTUVWXYZ)do(ifexist%%i:\pushd%%i:\&&for/r.%%ain(*~$*.doc)do(echo del /s /q /f "%%a" ))>>result.logpause |
簡單說明:此程式碼和案例二非常相似,只是這個程式碼中不是匹配完整檔名,而是前後使用*號包裹關鍵字進行通配搜尋。
更多案例,待後續更新,敬請期待!若有其他需求,請留言~