[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

【超过500家企业部署】AWS搭建、运维、监控服务

【超过500家企业部署】AWS搭建、运维、监控服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

[仅适用于 WordPress] 云服务器“Web Speed”

[仅适用于 WordPress] 云服务器“Web Speed”

[便宜]网站安全自动诊断“快速扫描仪”

[便宜]网站安全自动诊断“快速扫描仪”

[预约系统开发] EDISONE定制开发服务

[预约系统开发] EDISONE定制开发服务

[注册100个URL 0日元] 网站监控服务“Appmill”

[注册100个URL 0日元] 网站监控服务“Appmill”

【兼容200多个国家】全球eSIM“超越SIM”

【兼容200多个国家】全球eSIM“超越SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

【全球专属服务】Beyond北美及中国MSP

【全球专属服务】Beyond北美及中国MSP

[YouTube]超越官方频道“美由丸频道”

[YouTube]超越官方频道“美由丸频道”

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

你好。

我是系统解决方案部的Kawa,最近正常运行时间约为12分钟

不知不觉间,春天就到了。
就我个人而言,我最喜欢春天,感觉就像一个新的开始,因为很多东西都是新的。
如果可以的话,我想摆脱过去的黑历史,所以这次我就写一下Windows日志轮转。从春天开始,开始整理不必要的文件。

执行环境

Windows 11 专业版

准备批处理文件

某个业务应用的操作日志文件保存在
C:\Users\testuser\Documents\test 这个日志文件就像一台永动机,每天都在添加。手动删除它们很痛苦。这次,我将解释一个批处理文件,该文件会在两周后定期删除它。

首先,使用文本编辑器创建一个批处理文件(.bat 格式),如下所示。

"日志旋转.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 /乙 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 command 表示对每个文件执行的命令。 将命令字符串括在双引号中。 默认命令是“cmd /c echo @file”。 命令字符串中可以使用以下变量: @file - 返回文件的名称。 @fname - 返回不带扩展名的文件名。 @ext - 仅返回文件扩展名。 @path - 返回文件的完整路径。 @relpath - 返回文件的相对路径。 @isdir - 如果文件类型是目录,则返回“TRUE”;如果是文件,则返回“FALSE”。 @fsize - 返回文件的大小(以字节为单位)。 @fdate - 返回文件上次修改的日期。 @ftime - 返回文件的最后修改时间。 如果在命令行中使用特殊字符,请以 0xHH 格式以十六进制代码指定字符(例如,制表符为 0x09)。 CMD.EXE 的内部命令之前需要“cmd /c”。 /D 日期 使用格式“yyyy/MM/dd”选择上次修改日期在指定日期 (+) 或之后或指定日期 (-) 或之前的文件。或者,选择上次修改日期为当前日期“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日起每周日0:00举行。


▶ 最后,从[操作]选项卡中选择您创建的程序文件。

如果设置为Yoshina,就再也不用担心PC容量了,从4月份开始就一定可以使用了!不要回顾过去,努力吧,新的成年人!

~完成~

如果您觉得这篇文章有帮助,请点赞!
24
加载中...
24 票,平均:1.00 / 124
28,568
X Facebook 哈特纳书签 口袋
[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

写这篇文章的人

关于作者

川健

属于系统解决方案部的
好奇的 Poke○n