生产环境SQL Server数据库每天会通过代理作业将LGL库备份到E:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Backup\目录下日积月累会导致磁盘空间不够用需要定期清理如下是Power Shell脚本# 设置备份文件路径$backupPathE:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Backup\# 获取所有以 LGJL 开头并以 .bak 结尾的文件$backupFiles Get-ChildItem -Path$backupPath-Filter LGJL*.bak # 计算当前日期的7天前$sevenDaysAgo (Get-Date).AddDays(-7) # 遍历每个符合条件的 .bak 文件 foreach ($filein$backupFiles) { # 判断文件是否超过7天 if ($file.LastWriteTime -lt$sevenDaysAgo) { # 删除文件 Remove-Item -Path$file.FullName -Force -Confirm:$falseWrite-Host 已删除文件:$file.FullName } } Write-Host 符合条件的备份文件清理任务完成。将该脚本命名为DeleteOldBakFiles.ps1打开Windows的任务计划程序如下创建基本任务输入任务名称、触发器选择每天、选择开始日期和每隔几天发生一次、操作选择启动程序、启动程序选择上面保存的ps1脚本、完成如下
windows通过powershell脚本定期清理指定目录下7天前文件的.bak文件
发布时间:2026/5/28 16:58:56
生产环境SQL Server数据库每天会通过代理作业将LGL库备份到E:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Backup\目录下日积月累会导致磁盘空间不够用需要定期清理如下是Power Shell脚本# 设置备份文件路径$backupPathE:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Backup\# 获取所有以 LGJL 开头并以 .bak 结尾的文件$backupFiles Get-ChildItem -Path$backupPath-Filter LGJL*.bak # 计算当前日期的7天前$sevenDaysAgo (Get-Date).AddDays(-7) # 遍历每个符合条件的 .bak 文件 foreach ($filein$backupFiles) { # 判断文件是否超过7天 if ($file.LastWriteTime -lt$sevenDaysAgo) { # 删除文件 Remove-Item -Path$file.FullName -Force -Confirm:$falseWrite-Host 已删除文件:$file.FullName } } Write-Host 符合条件的备份文件清理任务完成。将该脚本命名为DeleteOldBakFiles.ps1打开Windows的任务计划程序如下创建基本任务输入任务名称、触发器选择每天、选择开始日期和每隔几天发生一次、操作选择启动程序、启动程序选择上面保存的ps1脚本、完成如下