Windows 怎么在批处理脚本中实现日志文件的自动按天轮转

胖涛姑娘_5613

胖涛姑娘_5613

2026-08-17

254人浏览

原创

windows批处理可实现日志按天轮转:用powershell获取iso格式日期,比对last_date.txt中记录的上次日期,不一致则重命名当前日志并更新标记文件。

在 windows 批处理中实现日志按天轮转,核心思路是:每次运行脚本时,检查当前日期是否与日志文件名中的日期不一致;若不一致,则重命名旧日志(如加日期后缀),再新建当日日志。无需第三方工具,纯 cmd 可完成。

用日期生成动态日志文件名

批处理无法直接获取格式化日期(如 2024-05-20),需借助 %date% 和字符串截取。注意:%date% 格式依赖系统区域设置,稳妥做法是用 PowerShell 一行生成标准日期:

set "today=%~n0_%date:~0,4%%date:~5,2%%date:~8,2%.log"

更可靠写法(兼容所有系统):

切问学术
切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

下载
for /f "usebackq delims=" %%i in (`powershell -command "Get-Date -Format 'yyyy-MM-dd'"`) do set "today=%%i"
set "logname=app_%today%.log"

判断是否需要轮转并归档旧日志

轮转的关键是识别“上次运行日”和“今天”是否不同。可将上一次的日期存在一个临时标记文件(如 last_date.txt)中:

  • 读取 last_date.txt 中的内容作为 last_day
  • 对比 last_day 与当前 %today%,不相等则执行归档
  • 归档操作:把当前主日志(如 app_current.log)重命名为 app_2024-05-19.log
  • 更新 last_date.txt 为今天的日期

完整轮转逻辑示例(含错误防护)

以下是一个轻量、健壮的轮转片段,可嵌入你的主脚本开头:

@echo off
setlocal enabledelayedexpansion

:: 获取今日日期(ISO 格式)
for /f "usebackq delims=" %%i in (`powershell -command "Get-Date -Format 'yyyy-MM-dd'"`) do set "TODAY=%%i"
set "LOG_BASE=app"
set "CURRENT_LOG=%LOG_BASE%_current.log"
set "LAST_DATE_FILE=last_date.txt"

:: 初始化 last_date.txt(首次运行)
if not exist "%LAST_DATE_FILE%" echo %TODAY% > "%LAST_DATE_FILE%"

:: 读取上次日期
set "LAST_DAY="
for /f "usebackq tokens=*" %%d in ("%LAST_DATE_FILE%") do set "LAST_DAY=%%d"

:: 判断是否需要轮转
if not "%LAST_DAY%"=="%TODAY%" (
if exist "%CURRENT_LOG%" (
ren "%CURRENT_LOG%" "%LOG_BASE%_%LAST_DAY%.log" 2>nul
if errorlevel 1 echo [WARN] 无法重命名旧日志,可能被占用。
)
echo %TODAY% > "%LAST_DATE_FILE%"
echo [%TIME%] 日志已轮转至 %LOG_BASE%_%LAST_DAY%.log
)

:: 追加日志到当前文件
echo [%DATE% %TIME%] 正在运行... >> "%CURRENT_LOG%"

补充建议

  • 日志路径建议用绝对路径(如 %~dp0logs\),避免因工作目录变化出错
  • 若脚本高频运行(如每分钟),可在轮转前加锁机制(例如尝试创建同名 .lock 文件)
  • 定期清理旧日志?可加一句:forfiles /p "%~dp0" /s /d -30 /c "cmd /c if @isdir==FALSE del @path"(删 30 天前日志)
  • 想合并查看?所有日志命名统一后,type app_2024*.log > all.log 即可

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

437

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

860

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2572

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

876

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

769

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

394

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2316

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

4272

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

687

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
HBuilderX Windows 安装手册
HBuilderX Windows 安装手册

共0课时 | 0人学习

phpEnv手册
phpEnv手册

共0课时 | 0人学习

好课诞生记
好课诞生记

共20课时 | 7.1万人学习