Windows forfiles(刪除歷史檔案)

pursuer.chen發表於2016-12-09

介紹

forfiles是windows自帶的一個批量刪除命令,對於時間的判斷是通過檔案自身的修改日期屬性進行判斷,使用它來對歷史檔案進行判斷刪除是個不錯的選擇。

 

 

語法

forfiles [/p Path ] [/m SearchMask ] [/s ] [/c Command ] [/d [{+ | - }] [{MM / DD / YYYY | DD }]]

 

[/p Path ]:指定路徑,當然目錄可以用“.”
[/m SearchMask ]:搜尋方式,預設是*.* 
[/s ]:遍歷子目錄進行搜尋,包括當前目錄

[/d [{+ | - }] [{MM / DD / YYYY | DD }]]:選擇日期大於或等於(+ )(或者小於或等於(- ))指定日期的檔案,預設+
其中MM / DD / YYYY 是指定的日期,DD 是當前日期減去DD 天,預設是DD 。DD 的有效範圍是0 - 32768
例如:
/d -15:查詢15天之前的檔案
/d 2016/12/9:指定查詢的檔案日期為2016/12/9

[/c Command ]:指定要執行的命令,格式為[ /c "cmd /c rd /s/q @path" ];雙引號裡面的/c後接需要執行的命令。

變數:
@file
 顯示檔名
@fname
 顯示無副檔名的檔名
@ext
 顯示副檔名
@path
 顯示檔案的完整路徑
@relpath
 檔案的相對路徑
@isdir
 如果檔案型別是目錄,則計算值為TRUE,否則值為FALSE
@fsize
 顯示用位元組表示的檔案大小
@fdate
 顯示檔案中上次修改的日期戳
@ftime
 顯示檔案中上次修改的時間戳

示例

1.檢視“d:\backup\data”目錄下名稱包含“--”,且修改時間大於15天的檔案或者資料夾

forfiles.exe /p d:\backup\data /m *-*-* /d -15 /c "cmd /c echo @path"

2.刪除,/s/q(/s資料夾下存在檔案也刪除,/q強制刪除不提示)

forfiles.exe /p d:\backup\data /m *-*-* /d -15 /c "cmd /c rd /s/q @path"

 

備註:路徑不支援"\\url\"這種共享路徑,rd(刪除資料夾),del(刪除檔案)

總結

 

 

 

備註:

    作者:pursuer.chen

    部落格:http://www.cnblogs.com/chenmh

本站點所有隨筆都是原創,歡迎大家轉載;但轉載時必須註明文章來源,且在文章開頭明顯處給明連結。

《歡迎交流討論》

相關文章