發新話題

巧用批次處理指令移除空資料夾

巧用批次處理指令移除空資料夾

什麼工具能尋找和移除硬碟上所有空的資料夾,或只包含空的子資料夾的資料夾?殺雞焉用宰牛刀,其實不用任何軟體,直接使用批次處理指令就能實現這個目的。

  第一步:進入Windows的MS-DOS視窗(Windows 2000/XP叫指令行提示號),進入要搜尋空資料夾的驅動器,執行:

  dir /ad/b/s | sort /r >empties.bat。

  小提示

  上面指令行中「|」的輸入方法是按住Shift鍵按「\」鍵。

  第二步:指令執行後,當前目錄下會產生一個Empties.bat文件,其中包含了逆序排列的所有資料夾的清單。用Word或記事本開啟該檔案,把每一行內容分別放入一對英文引號之內,然後在每一行前面插入「rd 」前綴(rd後加一個空格)。

  以Word為例,按Ctrl+H開啟「搜尋和取代」功能,搜尋「^p」(不含引號,下同。「^p」可以使用以下方法輸入:在「搜尋和取代」對話視窗中點「進階」按鈕,然後點擊「特殊字元→段落標記」),取代成「^prd 」(rd後面加一個空格),然後手動式修正第一行和最後一行的內容。儲存修改後的Empties.bat文件,進入指令行視窗執行這個批次處理文件。Empties.bat將試圖移除(即rd指令的作用)每一個資料夾,但包含內容的資料夾不可能用rd指令移除,結果就移除了所有空的資料夾。

  知其所以然:我們來瞭解一下前面Dir指令的執行原理:「/ad」要求Dir指令選出所有目錄;「/b」表示只顯示資料夾名稱(不顯示Dir指令的標題訊息或摘要);「/s」表示搜尋,即搜尋當前資料夾及其所有的子資料夾。Dir指令的輸出通過管道指令(「|」)傳送給Sort指令。Sort指令的作用是排序,「/r」選項表示逆序排列。

  最後,Sort指令的輸出被重轉發IP(「>」)到Empties.bat文件。由於要求Sort指令逆序排列輸出結果,所以Empties.bat文件中子資料夾總是位於父資料夾的前面,因而移除資料夾時,空的子資料夾總是先被移除,空的父資料夾也得以被移除。可以看到,巧妙運用Windows內建指令,許多表面上看起來複雜的工作也可以輕而易舉地完成!

  小提示:Dir的三個小招數

  ★檢視資料夾全部隱藏文件:如果想檢視Windows資料夾和它所有子資料夾中全部的隱藏文件,只需輸入DIR C:\Windows.* /AH/S/B/P。

  ★輕鬆新增長檔案名文件列表:你可以新增一個批次處理文件如Getlist.bat,其中的內容只有DIR *.* /B >LIST.TXT,將它複製到要新增文件列表的資料夾,然後雙按執行即可將資料夾所有文件的列表儲存到List.txt文件中。

  ★多個目錄齊現身:如果想同時列出C碟和D碟根目錄下的內容,那麼只要輸入DIR C: D:即可。

本帖最近評分記錄
  • lchqoo 經驗 +1 精品文章: 2006-5-5 21:43
  • lchqoo 金幣 +25 精品文章: 2006-5-5 21:43

TOP

回復 #1 mimicryo 的帖子

感謝大大低 回應
與支持本版 版規

再次感謝你低 回應分享

TOP

多謝大大的分享
幫了我粉大的忙
學到一些技巧
以備一時之須
本帖最近評分記錄
  • lchqoo 經驗 -4 違反版規第6條,限期改善!!~重複內容 2006-7-16 01:43

TOP

感謝大大又讓我懂了不少知識受用無窮感謝你的新知
本帖最近評分記錄
  • lchqoo 經驗 -4 您違反版規重複發文相同內容,限期改善!! 2006-7-26 03:12

TOP

感謝大大的分享.........................

TOP

感謝大大的分享~~辛苦了

TOP

發新話題

本站所有圖文均屬網友發表,僅代表作者的觀點與本站無關,如有侵權請通知版主會盡快刪除。