Re: [請問] 要執行一個條件式刪除動作
※ 引述《Matsuzaki (浩司君)》之銘言:
: 第一層:我有43個資料夾(目錄)
: 第二層:每個目錄裡又有二十個以上不等的子目錄
: 第三層:這些子目錄裡面各有超過十萬個檔案
: 第二層:我現在想找出這所有子目錄內,特定時間以前產生的檔案,刪除它們
: 第一層:這43個資料夾之中,有的要刪除2005之前的所有檔案,有的要刪除2006之前的
: 基本上應該是43個目錄都要寫一次script去做,因為條件不同
: 請問這script 該怎麼寫呢? @@" 謝謝
: 我試過直接在第一層按右鍵,搜尋 *.*,然後依時間排列檔案,shift 選取刪除
: 但由於檔案數量實在太龐大,搜尋一半就死當了QQ
dir /od /on /s >filename
C:\Documents and Settings\Administrator>dir /od /on
磁碟區 C 中的磁碟沒有標籤。
磁碟區序號: 2C3F-A098
C:\Documents and Settings\Administrator 的目錄
2009/03/12 上午 11:39 <DIR> 「開始」功能表
2009/10/02 下午 03:45 <DIR> Favorites
2009/10/02 下午 04:13 <DIR> Tracing
2009/10/16 上午 11:43 <DIR> .
2009/10/16 上午 11:43 <DIR> ..
2009/10/16 上午 11:43 <DIR> WINDOWS
2009/10/16 下午 10:01 <DIR> My Documents
2009/10/21 下午 12:15 600 PUTTY.RND
2009/10/29 上午 11:44 <DIR> 桌面
2009/10/29 上午 11:46 479 intlname.ols
2 個檔案 1,079 位元組
8 個目錄 8,996,315,136 位元組可用
C:\Documents and Settings\Administrator>
先找到你要的時間點之後的資訊,後面全部砍光光
然後使用awk或支援正規表示法的工具將前面紅色不要的資訊拿掉
並且每個檔名以空格格開(將換行取代為空格)
用下面這script
for %file in (file1 file2 .... fileN) do del %file
以下是原始參數說明
FOR %variable IN (set) DO 命令 [command-parameters]
%variable 指定一個可以取代的參數。
(set) 指定由一或多個檔案組成的檔案組。您可使用通配字元。
command 指定命令來執行每一個檔案。
command-parameters
為所指定的命令指定變數或參數。
如果要在批次程式中使用 FOR 命令,請指定 %%variable,而不要指定
%variable。 變數名稱有大小寫的區分,所以 %i 不同於 %I。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 211.74.232.248
※ 編輯: mshx 來自: 211.74.232.248 (10/29 12:39)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):