列出 C:\test 底下在2019/04/01後新增的 *.exe 檔案(處理子目錄)
FORFILES /P "C:\test" /M "*.exe" /S /C "cmd /c echo @path" /D "+2019/04/01"
列出 C:\test 底下超過 30 天的 *.jpg 檔案(不處理子目錄)
FORFILES /P "C:\test" /M "*.jpg" /C "cmd /c echo @path" /D -30
刪除 C:\test 底下超過 7 天的 *.bak 檔案(不處理子目錄)
FORFILES /P "C:\test" /M "*.bak" /C "cmd /c del @path" /D -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 之間的數字。
如果未指定,"+" 將被視為預設符號。
/? 顯示這個說明訊息。