windows下自動刪除過期檔案的指令碼

lurou發表於2011-08-31

有些廠家的軟體做得不夠好,產生的檔案比如日誌檔案等雖然每天佔用的容量小,時間長了卻是一堆很大的垃圾,廠家又沒有定期刪除的設定,於是我上網找了一個範例指令碼,自己改了改,記錄備用。


forfiles /p "D:bigantlogs" /s /m *.* /d -3 /c "cmd /c del @path" ,將其儲存為.bat檔案即可。

在windows server 2003系統中有一個forfiles命令能夠查詢滿足指定條件的檔案,下面是這個命令的用法。

forfiles /p /d /c


看看列出的三個引數都有什麼用處:
/p 指定了要在哪個目錄裡查詢檔案,預設是當前工作目錄。
/d 指定一個日期或天數,用於比較檔案的最後修改日期是否符合條件。
/c 對每個找到的檔案執行的命令。

刪除檔案的程式碼舉例:

forfiles /p 包含要刪除檔案的完整路徑(如:F:Logfiles) /m *.log -d -7 /c "cmd /c del /f @path"

解釋一下相關引數及命令

/p : 指定開始搜尋檔案的位置,如果不指定則預設為當前目錄。

/m : 檔案查詢所使用的萬用字元如程式碼中的"*.log"則為所有日誌檔案,當然也可以指定諸如"manmee_*.log"這樣以manmee開頭的所有日誌檔案。如果不指定此引數則預設為"*.*"。

/d [{+|-}][{|}] : 指定想選擇檔案的最後修改時間,上文中用了 "/d -7" 表示所有以當天為基礎,7天以前的檔案。當然這裡還可以指定具體時間,例如:"/d -08/18/2009"這樣所有早於2009年8月18日的檔案。注意指定的時間必須是"MM/DD/YYYY"的格式。

/c 對所有檔案以此執行指定的命令,命令體須在雙引號(")內。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26006637/viewspace-706356/,如需轉載,請註明出處,否則將追究法律責任。

相關文章