[Windows] 定期自动删除不必要的日志文件

您好,
我是系统解决方案部门的Kawa。我们最近的系统正常运行时间约为12分钟
转眼间,春天就来了。
我个人最喜欢春天,因为它带来了清新和新生的感觉。
我想摆脱过去那些不为人知的秘密,所以这次我想写写Windows日志轮换。从春天开始,是时候整理那些不必要的文件了。
执行环境
Windows 11 专业版
准备批处理文件
某个业务应用程序的操作日志文件存储在
C:\Users\testuser\Documents\test 这个日志文件就像一台永动机,每天都会生成新的文件。手动逐个删除它们非常麻烦。本文将介绍一个批处理文件,它可以每两周定期删除这些文件。
首先,使用文本编辑器创建一个批处理文件(.bat 格式),如下所示。
"logrotate.bat"
@echo off setlocal set LOGDIR="C:\Users\testuser\Documents\test" forfiles /P "%LOGDIR%" /M *.log /C "cmd /C Del /S @path" /D -14 exit /B 0
将其添加到 Windows 任务计划程序中,即可开始使用。
项目描述
@echo 关闭 setlocal
▶ `@echo off` 会禁用输出显示。使用 `setlocal` 可确保此程序中使用的环境变量不会影响其他程序(本地化)。
设置 LOGDIR="C:\Users\testuser\Documents\test"
▶ 将目标日志存储位置的路径分配给变量“LOGDIR”。
forfiles /P "%LOGDIR%" /M *.log /C "cmd /C Del /S @path" /D -14
▶ 这很复杂,所以我们把它分解成几个部分来讲解。
根据以下帮助信息,
使用 /P 指定相关路径,
/M 搜索文件(在本例中,是扩展名为“.log”的文件),
/C 执行任意命令,
/D 检查已过去的天数。在本例中,14 天 = 2 周。
forfiles 命令帮助 FORFILES [/P 路径名] [/M 搜索掩码] [/S] [/C 命令] [/D [+ | -] {yyyy/MM/dd | dd}] 说明:选择一个文件(或一组文件)并对该文件运行命令。这对于批处理作业非常有用。 参数列表: /P 路径名 指示搜索的起始路径。默认文件夹为当前工作目录 (.)。 /M 搜索掩码 按搜索掩码搜索文件。默认搜索掩码为“*”。 /S 指示 forfiles 同时处理子目录(例如“DIR /S”)。 /C 命令 指示要对每个文件运行的命令。命令字符串必须用双引号括起来。默认命令为“cmd /c echo @file”。 命令字符串中可以使用以下变量: @file - 返回文件名。 @fname - 返回不带扩展名的文件名。 @ext - 仅返回文件扩展名。 @path - 返回文件的完整路径。@relpath - 返回文件的相对路径。@isdir - 如果文件类型是目录,则返回“TRUE”;如果是文件,则返回“FALSE”。@fsize - 返回文件的大小(以字节为单位)。@fdate - 返回文件的最后修改日期。@ftime - 返回文件的最后修改时间。如果在命令行中使用特殊字符,请以 0xHH 格式的十六进制代码指定字符(例如,制表符为 0x09)。内部 CMD.EXE 命令必须以“cmd /c”开头。/D Date 选择最后修改日期在指定日期之后(+)或之前(-)的文件,格式为“yyyy/MM/dd”。或者,选择最后修改日期在当前日期之后或之前“dd”天的文件。有效的“dd”值介于 0 和 32768 之间。如果未指定,则默认使用“+”。 /? 显示帮助或用法。
"cmd /C Del /S @path"
▶ 此时,使用删除命令“Del”和 /S @path 从所有子目录中删除指定文件,并显示已删除的文件名。
出口 /B 0
▶ 在退出命令中添加“/B”将终止批处理,指定退出代码“0”将终止 cmd.exe 而不返回错误。
执行结果
您可以尝试通过手动在命令提示符下执行以下命令进行调试。
将一个文件放在某个位置,然后不带 /D 选项检查结果。
testuser> forfiles /P "%LOGDIR%" /M *.log /C "cmd /C Del /S @path" 已删除文件 - C:\Users\testuser\Documents\test\test.log 已删除文件 - C:\Users\testuser\Documents\test\test1.log 已删除文件 - C:\Users\testuser\Documents\test\test2.log
它已成功删除。
如果你已经做到这一步,那就快完成了。接下来我们来设置任务计划程序。
添加到任务计划程序
使用 Windows 搜索或类似功能打开任务计划程序。
从菜单中,单击【任务计划程序库】>【创建任务】。

▶ 在【常规】选项卡中,您可以设置任务名称和权限,例如“仅在登录时运行”。根据您要运行的内容,酌情调整安全选项。

▶ 在【触发器】选项卡中,您可以设置执行时间。在本例中,我们将其设置为从2月9日开始的每个星期日午夜。

▶ 最后,从【操作】选项卡中选择您创建的程序文件。
只要设置得当,你就不必再担心电脑的存储容量了,从四月开始你就能全力以赴!不要回头看过去,努力成为一个全新的成年人吧!
~完成~
29