RSS   



  可打印版本 | 推薦給朋友 | 訂閱主題 | 收藏主題 | 純文字版  


 


 
主題: [教學]巧用批次處理指令移除空資料夾   字型大小:||| 
spc4956
青銅驢友
等級: 11等級: 11等級: 11等級: 11


今日心情

 . 積分: 272
 . 文章: 209
 . 收花: 2611 支
 . 送花: 0 支
 . 比例: 0
 . 在線: 277 小時
 . 瀏覽: 2050 頁
 . 註冊: 6979
 . 失蹤: 1079
#1 : 2007-12-30 12:21 AM     只看本作者 引言回覆

版主 jazzblue : 請註明文章來源是轉貼還是原創

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

  第一步:進入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:即可。



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
labman
白銀驢友
等級: 15等級: 15等級: 15等級: 15等級: 15


十週年紀念徽章(三級)  

今日心情

 . 積分: 1487
 . 精華: 1
 . 文章: 1848
 . 收花: 12492 支
 . 送花: 3611 支
 . 比例: 0.29
 . 在線: 3085 小時
 . 瀏覽: 4940 頁
 . 註冊: 7452
 . 失蹤: 291
#2 : 2008-1-11 09:04 AM     只看本作者 引言回覆

蠻深入的變化 ,如果在DOS時代 ,這 dir /ad/b/s | sort /r 這是神來一筆呀 !


[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
dica517
銅驢友〔初級〕
等級: 8等級: 8
見怪不怪

今日心情

 . 積分: 120
 . 文章: 290
 . 收花: 901 支
 . 送花: 1039 支
 . 比例: 1.15
 . 在線: 2728 小時
 . 瀏覽: 13785 頁
 . 註冊: 7430
 . 失蹤: 2497
#3 : 2008-1-11 05:13 PM     只看本作者 引言回覆

善用管線...你就淫了....阿..是贏了才對


[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
Jonson
金驢友〔初級〕
等級: 16等級: 16等級: 16等級: 16
藏雲

今日心情

 . 積分: 1796
 . 文章: 1756
 . 收花: 15380 支
 . 送花: 6709 支
 . 比例: 0.44
 . 在線: 5890 小時
 . 瀏覽: 77021 頁
 . 註冊: 7502
 . 失蹤: 66
#4 : 2008-1-11 08:26 PM     只看本作者 引言回覆

dempdir.cmd

@echo off
pushd %temp%
dir %1 /ad/b/s | sort /r >empt.txt
FOR /F "delims==" %%i in (empt.txt) do rd "%%i" >nul
popd
用法:
dempdir C:\
可以指定目錄,不指定目錄則由指令檔所在目錄取代

註:
如果想在DOS環境任何目錄中都可以執行此指令檔
必須將此指令檔所在目錄加入 PATH 環境變數中

[Jonson 在  2008-1-14 04:24 AM 作了最後編輯]



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
jazzblue
版主
等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30
志凌

 . 積分: 1106
 . 文章: 3836
 . 收花: 8945 支
 . 送花: 906 支
 . 比例: 0.1
 . 在線: 2162 小時
 . 瀏覽: 43731 頁
 . 註冊: 7298
 . 失蹤: 204
 . 信義之星
#5 : 2008-5-19 11:06 PM     只看本作者 引言回覆

批次檔功能有限
用 jscript  來寫就方便多了  

移除空檔案夾並不是那麼重要,空檔案夾佔不了多少空間
若是能寫一個能移除不需要又佔空間的檔案
會比較實用!



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
wu1838
驢有所悟
等級: 3等級: 3


今日心情

 . 積分: 11
 . 文章: 66
 . 收花: 77 支
 . 送花: 3 支
 . 比例: 0.04
 . 在線: 107 小時
 . 瀏覽: 1020 頁
 . 註冊: 6985
 . 失蹤: 1833
#6 : 2008-5-28 03:26 PM     只看本作者 引言回覆

感謝大大分享喔~這個問題困擾已久


[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記

   

快速回覆
表情符號

更多 Smilies

字型大小 : |||      [完成後可按 Ctrl+Enter 發佈]        

溫馨提示:本區開放遊客瀏覽。
選項:
關閉 URL 識別    關閉 表情符號    關閉 Discuz! 代碼    使用個人簽名    接收新回覆信件通知
發表時自動複製內容   [立即複製] (IE only)


 



所在時區為 GMT+8, 現在時間是 2024-11-24 09:12 PM
清除 Cookies - 連絡我們 - TWed2k © 2001-2046 - 純文字版 - 說明
Discuz! 0.1 | Processed in 0.032154 second(s), 9 queries , Qzip disabled