.bat控制log.txt文档内只保存近七天的内容,超出删除内容 2024/11/18 14:47:12 : 发送数据 :COM7 : 9600 : 55 01 33 00 00 10 00 99
时间: 2024-12-15 11:27:34 浏览: 8
要创建一个`.bat`批处理文件来管理`log.txt`文档,仅保留最近七天的数据并删除过期记录,你可以使用Windows的内置命令如`type`, `find`, 和 `del`。以下是简单的步骤和示例脚本:
```batch
@echo off
set "DATE_FORMAT=%date:~10,4%-%date:~7,2%-%date:~4,2%"
set "SEVEN_DAYS_AGO=%DATE_FORMAT%-7"
set "CURRENT_LOG=log.txt"
rem 获取当前日期和七天前的日期格式
for /F "tokens=*" %%a in ('wmic os get localdatetime ^| find "."') do set "current_date=%%a"
set "seven_days_ago_date=%current_date:~10,4%-%current_date:~7,2%-%current_date:~4,2% %current_date:~13,2%:%current_date:~11,2%:%current_date:~0,2%"
rem 搜索七天前的记录位置
set "search_string=^<%SEVEN_DAYS_AGO%"
find "%search_string%" %CURRENT_LOG% > nul
if errorlevel 1 (
echo 日志中未找到七天前的记录,直接删除旧日志
del %CURRENT_LOG%
) else (
rem 如果找到了,则从那个位置开始读取,并将新内容追加到log.txt
type %CURRENT_LOG% | findstr /v "^<%SEVEN_DAYS_AGO%"> %CURRENT_LOG% > temp.txt
move /Y temp.txt %CURRENT_LOG%
)
echo 更新日志完成。
pause
```
这个脚本首先获取当前日期,然后设置七天前的日期格式。接着搜索`log.txt`中的记录,如果找不到七天前的记录,则直接删除整个文件;如果找到,就从那个位置之后的记录开始,把新的内容追加到文件中。
注意,这个脚本假设`log.txt`的每一行都是时间戳之后紧接着一条日志记录,且时间格式一致。运行此脚本之前,请确保它适用于您的实际日志格式。
阅读全文