PowerShell批量备份脚本
PowerShell编写的增量备份脚本,支持备份多个源目录到目标位置,自动压缩为ZIP,按日期命名,自动删除超过保留天数的旧备份,记录详细日志,配合任务计划程序定期运行,是数据备份的好工具。
详细内容
# 批量备份脚本
$sources = @('C:\Users\Documents', 'C:\Projects')
$dest = 'D:\Backup'
$keepDays = 30
$timestamp = Get-Date -Format 'yyyyMMdd_HHmmss'
New-Item -ItemType Directory -Path $dest -Force | Out-Null
foreach($src in $sources) {
$name = Split-Path $src -Leaf
$zip = Join-Path $dest "${name}_${timestamp}.zip"
Compress-Archive -Path $src -DestinationPath $zip -Force
Write-Host "备份完成: $zip"
}
# 清理旧备份
Get-ChildItem $dest -Filter '*.zip' | Where-Object {
$_.LastWriteTime -lt (Get-Date).AddDays(-$keepDays)
} | Remove-Item -Force
Write-Host '旧备份清理完成'
适配环境
依赖环境:Windows 10/11,PowerShell 5.1+
使用说明
1.保存为backup.ps1
2.修改源目录和目标路径
3.以管理员身份运行测试
4.任务计划程序设置定时运行
可以配置多个源目录
自动压缩节省空间
按日期命名方便查找
自动清理超过保留天数的备份
建议备份到不同磁盘或网络位置
2.修改源目录和目标路径
3.以管理员身份运行测试
4.任务计划程序设置定时运行
可以配置多个源目录
自动压缩节省空间
按日期命名方便查找
自动清理超过保留天数的备份
建议备份到不同磁盘或网络位置
常见问题
问:是增量备份还是全量?
答:当前版本是全量压缩备份,可以修改为增量(只备份修改过的文件)
问:备份到网络位置可以吗?
答:可以,目标路径填网络共享路径即可