1、Windows自动清除一周前的日志文件夹
:: 设置日志路径
set log_dir="C:\Users\Administrator\Desktop\DeleteLog"
:: 保留日志天数
set bak_dat=7
:: 删除日志文件夹。解释:删除C:\inetpub\logs\LogFiles目录下以20开头的7天前的文件夹
forfiles /p %log_dir% /d -%bak_dat% /m "20*" /c "cmd /c if @isdir==TRUE (rmdir /q /s @path)"
pause
2、将脚本文件加入windows任务计划,每天自动执行。
3、rmdir 删除目录命令参数
/q:删除目录时不提示确认,直接删除
/s:表示删除该目录下所有遍历的子目录和文件
4、Forfiles参数说明
基本表达式
forfiles [/p <Path>] [/m <SearchMask>] [/s] [/c "<Command>"] [/d [{+|-}][{<Date>|<Days>}]]
/p:指定的日志文件夹
/d:指定时间删除文件,通过文件的上次修改日期选择文件,主要有以下两种写法:
-Day,-YYYY-MM-DD
-7表示,七天前的数据,
+7表示,过去七天的数据,
-2019-01-01,2018-01-01前的数据
+2019-01-01,2018-01-01之后的数据
/M:要搜索的文件名,支持通配符*
/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" 开始