作者 主題: 編輯 script 自動 del 舊有資料  (閱讀 2149 次)

0 會員 與 1 訪客 正在閱讀本文。

edwardleung

  • 俺是博士!
  • *****
  • 文章數: 1135
    • 檢視個人資料
編輯 script 自動 del 舊有資料
« 於: 2013-10-08 15:20 »
各位大大您們好,

在 D: Drive 中已有以下資料夾:

D:\Daily

D:\Daily_20130819

D:\Daily_20130826

D:\Daily_20130902

D:\Weekly

D:\Weekly_20130818

D:\Weekly_20130825

D:\Weekly_20130901

後面數字為yyyymmdd....

請問有否例子( script ) 可以參考, 用來自動把最舊時間的資料夾 del ?

如:D:\Daily_20130819 及 D:\Weekly_20130818

謝謝!

h2owater

  • 可愛的小學生
  • *
  • 文章數: 6
    • 檢視個人資料
Re: 編輯 script 自動 del 舊有資料
« 回覆 #1 於: 2013-10-25 15:49 »
閣下可以用以下的batch 顯示以Daily 作開頭的最舊folder 

代碼: [選擇]
@echo off
for /f "delims=" %%a in ('dir "Daily*" /a:d /o:-d /b') do set "folder=%%a"
echo "%folder%"
pause

如要刪除此folder, 可以執行

代碼: [選擇]
@echo off
for /f "delims=" %%a in ('dir "Daily*" /a:d /o:-d /b') do set "folder=%%a"
rd /s /q "%folder%"
pause







另外閣下亦可考慮以Robocopy 刪除舊有資料:


代碼: [選擇]
ROBOCOPY C:\Log\ C:\TEMP\LOG\ /E /ZB /MOV  /R:1 /W:1 /MINAGE:30 /log:del.log
例如上述範例便會將 C:\Log 內修改日期超過30天的檔案以及資料夾移到  C:\TEMP\LOG\   並把對該目錄操作明細記錄在del.log 中
然後再執行

代碼: [選擇]
RD /S /Q C:\TEMP\LOG\
便可清理掉舊檔案

robocopy 下載:
http://www.microsoft.com/en-us/download/confirmation.aspx?id=17657

robocopy 指令  technet連結 :

http://technet.microsoft.com/en-us/library/cc733145.aspx