使用场景:解决Windows server2019 / SQL Server 备份服务的自动化需求
一、 脚本文件 auto-for-win2019
- 主脚本:
Auto-Move-Files.bat– 每日自动移动备份文件到日期文件夹并上传到华为obs - 清理脚本:
Clean-Old-Backups.bat– 每周清理旧备份文件夹,防止磁盘爆满

二、 功能概述
1. Auto-Move-Files.bat
- 执行频率: 每天执行
- 主要功能:
- 自动创建以当前日期命名的文件夹(格式:YYYYMMDD)
- 将当天生成的备份文件移动到对应日期文件夹
- 同步文件夹到华为云OBS备份
2. Clean-Old-Backups.bat
- 执行频率: 每周日执行
- 主要功能:
- 自动删除7天前的备份文件夹
- 保留最近7天的本地备份
- 记录详细操作日志
三、 配置参数
备份目录
set "backup_dir=C:\数据库备份"
保留策略
set "days_to_keep=7" # 保留最近7天的备份
日志文件
set "log_file=%backup_dir%\cleanup_日志.txt"
四、 清理逻辑
日期计算
- 当前日期: 使用WMIC命令获取系统日期
- 截止日期: 当前日期减去7天
- 示例: 今天是2025-12-19,则删除2025-12-12及之前的文件夹
文件夹识别规则
- 格式要求: 8位数字(YYYYMMDD)
- 日期验证:
- 年份 ≥ 2000
- 月份 1-12
- 日期 1-31
- 比较规则: 文件夹日期 ≤ 截止日期 → 删除
五、 日志记录
日志内容
- 操作开始时间
- 配置参数
- 当前日期和截止日期
- 每个文件夹的处理结果
- 操作统计信息
六、 部署步骤
1. 文件放置
将两个批处理文件放在合适的位置,建议:
C:\数据库备份\目录下- 或专门的脚本目录
2. 配置任务计划

Auto-Move-Files.bat(每日任务)
- 触发器: 每天,选择合适时间(如凌晨1:00)
- 操作: 启动程序 → 选择
Auto-Move-Files.bat - 条件: 不管用户是否登录都要运行
Clean-Old-Backups.bat(每周任务)
- 触发器: 每周,星期日,选择合适时间(如凌晨2:00)
- 操作: 启动程序 → 选择
Clean-Old-Backups.bat - 条件: 选择“只在用户登录时运行”,如果选择“不管用户是否登录都要运行”,会导致无法运行。
3. 权限设置
确保任务计划程序使用的账户有:
- 对
C:\数据库备份的完全控制权限 - 批处理文件执行权限
七、 注意事项
1. 编码问题
- 批处理文件必须保存为 ANSI编码
- 不要使用UTF-8编码,否则会出现乱码错误
2. 权限要求
- 以管理员权限运行脚本
- 确保有删除文件夹的权限
3. 错误处理
- 脚本已包含基本错误处理
- 删除失败会记录在日志中
- 不会中断脚本执行
八、 故障排查
常见问题
- 脚本一闪而过
- 检查文件编码(应为ANSI)
- 检查路径是否正确
- 手动运行查看错误信息
- 文件夹未删除
- 检查文件夹权限
- 查看日志文件了解原因
- 确认日期计算是否正确
- 日志文件未生成
- 检查备份目录是否存在
- 检查写入权限
- 查看脚本是否有语法错误
调试方法
- 在CMD中手动运行脚本
- 查看屏幕输出信息
- 检查日志文件详细信息
附件列表