求可通过Task Scheduler执行的PowerShell脚本:删除180天前日志文件
修复日志清理脚本&任务计划配置指南
原脚本的问题
$Daysback = "-180"是字符串格式,但AddDays()方法需要整数参数,类型不匹配会导致删除日期计算错误- 任务计划程序执行PowerShell脚本时,若参数、权限配置不当,也会导致脚本无法正常运行
修正后的脚本
# 指定日志文件夹路径 $Path = "C:\Users\akshay.tanpure\Music\logs" # 设置保留最近180天的日志,更早的将被删除 $DaysToKeep = 180 $DateToDelete = (Get-Date).AddDays(-$DaysToKeep) # 递归查找所有.log文件,删除180天以前的文件 Get-ChildItem -Path $Path -Recurse -Filter "*.log" -File | Where-Object { $_.LastWriteTime -lt $DateToDelete } | Remove-Item -Force -ErrorAction SilentlyContinue
任务计划程序配置要点
- 新建任务:
- 常规选项卡:勾选「不管用户是否登录都要运行」,若删除文件需要更高权限,同时勾选「使用最高权限运行」
- 触发器:设置脚本执行的时间规则,比如每天凌晨2点自动执行
- 操作:
- 操作类型选择「启动程序」
- 程序/脚本输入:
powershell.exe - 添加参数:
-ExecutionPolicy Bypass -File "C:\你的脚本存放路径\CleanLogs.ps1"(替换为实际的脚本文件路径)
- 设置选项卡:勾选「允许按需运行」「错过计划的启动时立即运行」,其余选项可根据需求调整
额外注意事项
- 先手动运行脚本,确认能正常删除目标文件后再配置任务计划
- 确保任务计划使用的账户对日志文件夹拥有读取、删除权限
- 脚本中添加的
-ErrorAction SilentlyContinue可避免因单个文件删除失败导致整个脚本终止;若需要记录错误信息,可改为-ErrorAction Stop并添加try-catch块实现错误日志记录
内容的提问来源于stack exchange,提问作者Akshay
相关产品推荐
相关产品推荐

