Ref. http://stenwang.blogspot.com/2015/11/n.html?m=1
Bat檔範例:
@title 清除磁碟空間
rem iniPath1:上版檔案的位置1
set iniPath1=E:\Portal\上版資料區
attrib -S -H -R %iniPath1%\*.* /S /D
forfiles /p "%iniPath1%" /s /d -365 /c "cmd /c del /q @path"
其中attrib參數:-S(去除系統),-H(去除隱藏)
=========================================
語法:
Syntax
forfiles [/p Path] [/m SearchMask] [/s] [/c Command] [/d[{+ | -}] [{MM/DD/YYYY | DD}]]
Parameters
/p Path
指定您要在其上開始搜尋的 Path。預設資料夾為目前的工作目錄,您可以透過輸入句點 (.) 來指定。
/m SearchMask
依據 SearchMask 來搜尋檔案。預設的 SearchMask 為 *.*。
/s
指示 forfiles 在子目錄中搜尋。
/c Command
在每個檔案上執行指定的 Command。您必須將帶有空格的命令字串包含在引號中。預設的 Command 為 "cmd /c echo @file"。
/d[{+ | -}] [{MM/DD/YYYY | DD}]
選取日期大於等於 (+) 或小於等於 (-) 指定日期的檔案,其中 MM/DD/YYYY 是指定的日期,而 DD 是目前日期減去 DD 天。如果您未指定 + 或 -,則會使用 +。DD 的有效範圍為 0 - 32768。
/?
在命令提示字元上顯示說明。
Remarks
•
Forfiles 最常使用於批次檔案中。
•
Forfiles /s 與 dir /s 類似。
•
下列表格列出了您可以在 /cCommand 命令字串中使用的變數。
變數
描述
@file
檔案名稱
@fname
不含副檔名的檔案名稱
@ext
副檔名
@path
檔案的完整路徑
@relpath
檔案的相對路徑
@isdir
如果檔案類型是目錄,則判斷值是 TRUE,否則判斷值是 FALSE。
@fsize
檔案大小 (以位元組為單位)
@fdate
檔案上的上次修改日期戳記
@ftime
檔案上的上次修改時間戳記
•
使 用 forfiles,您可以在多個檔案上執行命令,或將引數傳送到多個檔案。例如,您可以在樹狀目錄中帶有 *.txt 副檔名的所有檔案上執行 TYPE 命令。或者,您可以執行 C: 磁碟機上的每個批次檔案 (*.bat),以檔案名稱 Myinput.txt 作為第一個引數。
•
使用 forfiles,您可以執行下列任何一項動作:
•
使用 /d 按絕對或相對日期選取檔案。
•
使用變數,例如 @fsize (檔案大小) 及 @fdate (檔案日期),來建立檔案的保存樹狀目錄。
•
使用 @isdir 變數以從目錄中區分檔案。
•
藉由在命令列中包含特殊字元,及使用十六進位字碼 0xHH 包圍字元,來格式化輸出。
•
Forfiles 藉由執行工具 (設計用於僅處理單一檔案)上的 recurse subdirectories 旗標來運作。