1. 程式人生 > >[持續更新]批處理全盤搜尋系列案例

[持續更新]批處理全盤搜尋系列案例

雖然現在全盤搜尋相關的實用軟體很多也很強大,但是在手頭上無法下載的時候,批處理這個"資深前輩"又得派上用場了,接下來介紹的程式碼均為全盤範圍的批處理:

案例一、列出我的電腦中的所有硬碟分割槽

MS DOS
123456 @echo off   title列出硬碟分割槽for%%iin(CDEFGHIJKLMNOPQRSTUVWXYZ)do(ifexist%%i:\echo %%i  )pause>nul

簡單說明:程式碼使用 for 依次迴圈讀取 C 到 Z,並加上:\進而使用 if exist 判斷路徑是否存在,存在則列印到螢幕上。

案例二、全盤查詢某個檔案

(來自我的百度回答)

知友問:
不知道檔案路徑,只知道名字,怎麼製作 bat 執行檔案?

如題,要做 1 個開啟檔案的 bat,知道是用 star +路徑。但是我沒有路徑只知道名字,而且我這個電腦沒有那個檔案。是學校的機子。。。求一個指令可以搜尋直接執行,就像選單中的”執行“那樣

我給出的程式碼:

MS DOS
1234567891011121314 @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】刪除即可,希望對你有用:

MS DOS
123456 @echo off    for%%iin(CDEFGHIJKLMNOPQRSTUVWXYZ)do(ifexist%%i:\pushd%%i:\&&for/r.%%ain(*~$*.doc)do(echo del /s /q /f "%%a"    ))>>result.logpause

簡單說明:此程式碼和案例二非常相似,只是這個程式碼中不是匹配完整檔名,而是前後使用*號包裹關鍵字進行通配搜尋。

更多案例,待後續更新,敬請期待!若有其他需求,請留言~