删除7天前的的文件

例:删除 “C:\inetpub\logs\LogFiles”目录及其子目录下,所有7天前的.log日志文件

forfiles /p "C:\inetpub\logs\LogFiles" /s /m *.log /d -7 /c "cmd /c del @path"
exit


保存为rm.bat,然后定一个任务计划,让其每隔一段固定时间又执行一次。

关于Forfiles 命令介绍

注:
1)Windows XP/2003以上版本支持该命令。
2)如果没有可以自行从网上下载forfiles.exe,然后把forfiles.exe放到C:\Windows\System32目录下即可。

 
选择并对文件或文件集执行命令。 此命令可用于批处理。

有关如何使用此命令的示例,请参阅示例。

语法
 
forfiles [/p <Path>] [/m <SearchMask>] [/s] [/c"<Command>"] [/d [{+ |-}] [{<Date> | <Days>}]]
 
参数  说明
 
/p <Path>
 指定从其开始搜索的路径。 默认情况下搜索当前工作目录中启动。
 
/m <SearchMask>
 根据指定的搜索遮罩文件中搜索。 默认的搜索掩码是*。 *。
 
/s
 指示搜索子目录以递归方式为forfiles命令。
 
/c"<Command>"
 每个文件上运行指定的命令。 应将命令字符串括在引号中。 缺省命令为"cmd /c 回显 @ 文件"。
 
/d [{+ |-}] [{<Date> | <Days>}]
 选择文件与指定的时间段内的上次修改日期。

选择的文件的上次修改日期晚于或等于 (+) 或早于或等于 (-) 指定的日期, +日期 - 格式 MM/DD/YYYY 在哪里。 日期+-


选择文件的上次修改日期晚于或等于 (+) 与当前日期加上指定天数,或早于或等于 (-) 指定当前日期减去的天数。+- -


天 天 的有效值范围 32,768 中包含任意数量。 如果没有指定,默认情况下使用+ 。


 
/?
 在命令提示符下显示帮助。
 

备注

Forfiles最常用在批处理文件中。


Forfiles /s是类似于dir /s.


您可以使用以下变量由/c命令行选项指定的命令字符串中。


变量  说明 
@ FILE
 文件的名称。
 
@ FNAME
 不带扩展名的文件名。
 
@ 分机
 文件扩展名。
 
@ PATH
 该文件的完整路径。
 
@ RELPATH
 该文件的相对路径。
 
@ ISDIR
 如果文件类型是一个目录,则值为 TRUE。 否则,此变量的值为 FALSE。
 
@ FSIZE
 文件大小以字节为单位)。
 
@ FDATE
 文件中的最后一次修改的日期戳。
 
@ FTIME
 文件中的最后一次修改的时间戳。
 

与forfiles,可以在运行命令或将参数传递给多个文件。 例如,可以在树中带有.txt 文件扩展名的所有文件运行type命令。 或者您可能执行的每个批处理文件 (*.bat) 在驱动器 C 上的文件命名为"Myinput.txt"作为第一个参数。


与forfiles,请执行下列任一操作:


通过使用/d参数选择的绝对日期或相对日期的文件。


通过使用变量,例如 @ FSIZE 中生成的文件归档树和 FDATE @。


文件有别于目录使用 @ ISDIR变量。


在命令行中包含特殊字符,使用 0xHH格式 (例如,0x09) 选项卡) 中的字符的十六进制代码。


通过实施循环子目录标志工具,旨在处理单个文件 forfiles。


示例


要列出所有驱动器 C 上的批处理文件,请键入:

forfiles /p c:\ /s /m *.bat /c"cmd /c 回显 @ 文件是一个批处理文件"

若要列出所有驱动器 C 上的目录,请键入:

forfiles /p c:\ /s /m *。 * /c"cmd /c = 如果 @ isdir = true 回显 @ 文件是一个目录"

若要列出所有当前目录中至少一年以前的文件,请键入:

forfiles /s /m *。 * /d-365 /c"cmd /c 回显 @ file 是至少一年以前。

若要显示"文件已过时"早于 2007 年 1 月 1 日,在当前目录中的文件的每个文本键入:

forfiles /s /m *。 * /d-01/01/2007年 /c"cmd /c 回显 @ file 是过时。

要列出列格式的当前目录中的所有文件的文件扩展名,并添加在扩展名前的一个选项卡,请键入:

forfiles /s /m *。 * /c"cmd /c 回显 @ 文件的扩展名是 0x09@ext"