您现在的位置:首页 > 系统运维 > windows运维

如何自动删除windows下前一个星期的日志文件

1、Windows自动清除一周前日志脚本:: 设置日志路径set log_dir="C:\Users\Administrator\Desktop\DeleteLog":: 保留日志天数set bak_dat=7:: 删除日志文件。解释:删除C:\Use

1、Windows自动清除一周前日志脚本

:: 设置日志路径
set log_dir="C:\Users\Administrator\Desktop\DeleteLog"
:: 保留日志天数
set bak_dat=7
:: 删除日志文件。解释:删除C:\Users\Administrator\Desktop\DeleteLog目录下以.log结尾的7天前的文件
forfiles /p %log_dir% /M "*.log" /D -%bak_dat% /C "cmd /c del @file"
pause

测试附件:

自动删除前一周日志文件
cd73234b78d7310787849ff72c9f8e44.7z (481 Bytes)

2、将脚本文件加入windows任务计划,每天自动执行。

 

3、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" 开始


 

版权所有
侵权必究

上一篇
通过windows netsh命令进行端口转发重定向 (支持windows Server 2008 、2012、2016 和windows 7)
下一篇
如何自动删除windows下前一周的日志文件夹和里面的日志文件?