Bootstrap

Windows删除指定时间之前指定后缀名的文件

时间判定标准:文件创建时间

实例:删除 E:\easbak 目录下(包括子文件夹),5天前 “.dmp”后缀名的文件及后缀名为 “*.log” 的文件

批处理:

@echo off
echo 删除7天前的备份文件和日志
set SrcDir=E:\easbak
set DaysAgo=5
echo 删除5天前的备份文件和日志
forfiles /p %SrcDir% /s /m *.dmp /d -%DaysAgo% /c "cmd /c del /f /q /a @path"
forfiles /p %SrcDir% /s /m *.log /d -%DaysAgo% /c "cmd /c del /f /q /a @path"/c del @path" echo 正在执行删除,请稍等……
pause
echo 任务完成!</pre>

说明:
/p 指定的路径
/s 包括子目录
/m 查找的文件名掩码
/d 指定日期,有绝对日期和相对日期, 此处-7指当前日期 的7天前
SrcDir:要删除文件所在的文件夹
DaysAgo:时间

/c 运行的命令行 表示为每个文件执行的命令。命令字符串应该用双引号括起来。
/f:强制删除只读文件
/s:从所有子目录删除指定文件
/q:删除全局通配符时,不提示删除确认
默认命令是 "cmd /c echo @file"。下列变量可以用在命令字符串中:
@file - 返回文件名。
@fname - 返回不带扩展名的文件名。
@ext - 只返回文件的扩展。
@path - 返回文件的完整路径。
@relpath - 返回文件的相对路径。
@isdir - 如果文件类型是目录,返回 "TRUE";
如果是文件,返回 "FALSE"。
@fsize - 以字节为单位返回文件大小。
@fdate - 返回文件上一次修改的日期。
@ftime - 返回文件上一次修改的时间

;