37 lines
1.0 KiB
Batchfile
37 lines
1.0 KiB
Batchfile
@echo off
|
||
setlocal enabledelayedexpansion
|
||
|
||
rem 设置保留天数
|
||
set days_to_keep=3
|
||
|
||
rem 计算截止日期(当前日期减去保留天数)
|
||
for /f "tokens=1-3 delims=/- " %%a in ('date /t') do (
|
||
set current_day=%%a
|
||
set current_month=%%b
|
||
set current_year=%%c
|
||
)
|
||
|
||
rem 使用PowerShell计算截止日期(更准确的方法)
|
||
for /f %%d in ('powershell -command "(Get-Date).AddDays(-%days_to_keep%).ToString('yyyy-MM-dd')"') do (
|
||
set cutoff_date=%%d
|
||
)
|
||
|
||
echo 正在删除 %cutoff_date% 之前的日志文件...
|
||
echo.
|
||
|
||
for /D %%A in ("D:\*") do (
|
||
if exist "%%A\userdata\log\*.log" (
|
||
echo 正在检查目录: %%A\userdata\log
|
||
|
||
rem 使用forfiles命令删除3天前的文件
|
||
forfiles /p "%%A\userdata\log" /m "*.log" /d -%days_to_keep% /c "cmd /c echo 正在删除 @path && del /q @path"
|
||
|
||
rem 显示剩余文件
|
||
echo 剩余文件:
|
||
dir "%%A\userdata\log\*.log" /b 2>nul || echo 目录中没有日志文件
|
||
echo.
|
||
)
|
||
)
|
||
|
||
echo 清理完成!
|
||
pause |