使用排程執行 forfiles。
forfiles -p "D:\test" -s -m *.* -d -7 -c "cmd /c del @path"
forfiles /P "D:\test" /S /M *.* /D -7 /C "cmd /c del @path"
刪除 7 天前的檔案。
FORFILES [/P pathname] [/M searchmask] [/S]
[/C command] [/D [+ | -] {yyyy/MM/dd | dd}]
描述:
選取一個檔案 (或一組檔案),並在檔案上執行命令。
參數清單:
/P pathname 表示要開始搜尋的路徑。
預設資料夾是目前的目錄 (.)。
/M searchmask 根據 searchmask 搜尋檔案。
預設的 searchmask 是 '*'。
/S 指示 forfiles 遞迴搜尋子目錄。例如 "DIR /S"。
/C command 表示每個檔案要執行的命令。
命令字串應該包含在雙括號之間。
預設的命令是 "cmd /c echo @file"。
下列變數可以使用於命令字串:
@file - 傳回檔案的名稱。
@fname - 只傳回檔案的名稱,不傳附檔名。
@ext - 只傳回檔案的附檔名。
@path - 傳回檔案的完整路徑。
@relpath - 傳回檔案的相對路徑。
@isdir - 如果檔案類型是目錄的話,
傳回 "TRUE",如果是檔案的話,傳回 "FALSE"。
@fsize - 傳回檔案的大小,單位是位元組。
@fdate - 傳回檔案上次修改的日期。
@ftime - 傳回檔案上次修改的時間。
要在命令列中包含特殊字元的話,請使用 0xHH 格式的十六
進位字元碼 (例如 0x09 代表 tab)。
內部的 CMD.exe 命令應該以 "cmd /c" 執行。
/D date 選取檔案上次修改的時間大於、等於 (+) 或小於或等於 (-)、
使用 "yyyy/MM/dd" 格式表示指定的日期;
或選取檔案日期上次修改的時間大於或等於 (+)
目前的日期再加上"dd" 天、小於或等於 (-) 目前的日期減去 "dd" 天。
有效的 "dd" 可以是介於0 - 32768 之間的數字。
如果未指定,"+" 將被視為預設符號。
/? 顯示這個說明訊息。
範例:
FORFILES /?
FORFILES
FORFILES /P C:\WINDOWS /S /M DNS*.*
FORFILES /S /M *.txt /C "cmd /c type @file | more"
FORFILES /P C:\ /S /M *.bat
FORFILES /D -30 /M *.exe
/C "cmd /c echo @path 0x09 was changed 30 days ago"
FORFILES /D 2001/01/01
/C "cmd /c echo @fname is new since Jan 1st 2001"
FORFILES /D +2011/2/30 /C "cmd /c echo @fname is new today"
FORFILES /M *.exe /D +1
FORFILES /S /M *.doc /C "cmd /c echo @fsize"
FORFILES /M *.txt /C "cmd /c if @isdir==FALSE notepad.exe @file"
留言列表