在檔案或檔案集上選取並執行命令。 此命令最常用於批處理檔中。
Syntax
forfiles [/P pathname] [/M searchmask] [/S] [/C command] [/D [+ | -] [{<date> | <days>}]]
Parameters
| Parameter | Description |
|---|---|
/P <pathname> |
指定要從中開始搜尋的路徑。 根據預設,搜尋會從目前的工作目錄中開始。 |
/米 <searchmask> |
根據指定的搜尋掩碼搜尋檔案。 預設的搜尋遮罩為 *。 |
| /S | 指示 forfiles 指令以遞迴方式搜尋子目錄。 |
/C <command> |
在每個檔案上執行指定的命令。 命令字串應該以雙引號括住。 預設指令 "cmd /c echo @file"。 |
/D [{+\|-}][{<date> | <days>}] |
選取在指定時間範圍內具有上次修改日期的檔案:
|
| /? | 在 Cmd 視窗中顯示說明文字。 |
Remarks
forfiles /S命令類似於dir /S。您可以在命令字串中使用下列變數,如 /C 命令列選項所指定:
Variable Description @FILE File name. @FNAME 沒有擴展名的檔名。 @EXT 擴展名。 @PATH 檔案的完整路徑。 @RELPATH 檔案的相對路徑。 @ISDIR 如果檔類型是目錄,則評估為 TRUE。 否則,此變數會評估為 FALSE。 @FSIZE 檔案大小,以位元組為單位。 @FDATE 檔案上上次修改的日期戳記。 @FTIME 檔案上上次修改的時間戳。 forfiles 指令可讓您在多個檔案上執行指令或將引數傳遞至多個檔案。 例如,您可以對樹狀結構中具有 .txt 副檔名的所有檔案執行 type 命令。 或者,您可以在磁碟驅動器 C 上執行每個批處理檔 (*.bat),檔名 Myinput.txt 做為第一個自變數。
這個指令可以:
使用 /d 參數依絕對日期或相對日期選取檔案。
使用 @FSIZE 和 @FDATE等變數來建置檔案的封存樹狀結構。
使用 @ISDIR 變數區分檔案與目錄。
使用字元的十六進位程式碼,以 0xHH 格式在命令列中包含特殊字元 (例如,0x09 表示索引標籤)。
此命令的運作方式是在設計只處理單一檔案的工具上實作
recurse subdirectories旗標。
Examples
若要列出磁碟驅動器 C 上的所有批次處理檔,請輸入:
forfiles /P c:\ /S /M *.bat /C "cmd /c echo @file is a batch file"
若要列出磁碟驅動器 C 上的所有目錄,請輸入:
forfiles /P c:\ /S /M * /C "cmd /c if @isdir==TRUE echo @file is a directory"
若要列出目前目錄中至少一年前的所有檔案,請輸入:
forfiles /S /M *.* /D -365 /C "cmd /c echo @file is at least one year old."
若要顯示目前目錄中每個早於 2007 年 1 月 1 日的檔案的文字 檔 已過期,請鍵入:
forfiles /S /M *.* /D -01/01/2007 /C "cmd /c echo @file is outdated."
若要以數據行格式列出目前目錄中所有檔案的擴展名,並在擴展名之前新增索引標籤,請輸入:
forfiles /S /M *.* /C "cmd /c echo The extension of @file is 0x09@ext"