批处理文件备份脚本改造需求:实现每两小时自动备份功能
没问题,我帮你改造这个脚本,同时实现每两小时自动备份的需求。咱们分两步来:先把手动输入文件名改成自动生成唯一的时间戳文件名(避免覆盖旧备份),再提供两种定时执行的方案——脚本内部循环或者用Windows任务计划(更推荐后者,稳定可靠)。
第一步:改造脚本,自动生成备份文件名
先把原来需要手动输入文件名的逻辑替换成时间戳命名,这样每次备份的文件都有唯一标识,不会互相覆盖。修改后的脚本如下:
@Echo Off set "desPath=C:\User\Craig\Desktop\Back Up\" set "extension=.mdb" :: 确保备份文件夹存在,不存在则创建 if not exist "%desPath%" mkdir "%desPath%" :: 生成时间戳格式:YYYYMMDD_HHMMSS(处理小时为个位数时的空格问题) set "timestamp=%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%" set "timestamp=%timestamp: =0%" set "target=%desPath%%timestamp%%extension%" Echo 开始备份... 目标文件:%target% copy "H:\Accounts.mdb" "%target%" :: 检查备份是否成功 if %errorlevel% equ 0 ( Echo 备份完成! ) else ( Echo 备份失败,请检查文件路径或权限。 )
脚本说明:
- 自动创建备份文件夹(如果不存在),避免因文件夹缺失导致复制失败
- 时间戳格式为
YYYYMMDD_HHMMSS,比如20240520_143522.mdb,清晰记录备份时间 - 加入了备份结果判断,方便排查问题
第二步:实现每两小时自动执行
这里提供两种方案,按需选择:
方案1:脚本内部循环执行(简单但需保持窗口运行)
如果不想用系统工具,可以让脚本自己循环,每两小时执行一次备份。缺点是需要保持命令行窗口一直打开,关闭窗口就会停止备份:
@Echo Off setlocal enabledelayedexpansion set "desPath=C:\User\Craig\Desktop\Back Up\" set "extension=.mdb" :loop :: 确保备份文件夹存在 if not exist "%desPath%" mkdir "%desPath%" :: 生成时间戳 set "timestamp=%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%" set "timestamp=!timestamp: =0!" set "target=%desPath%%timestamp%%extension%" Echo [%date% %time%] 开始备份... copy "H:\Accounts.mdb" "%target%" if !errorlevel! equ 0 ( Echo 备份成功:!target! ) else ( Echo 备份失败,请检查路径/权限。 ) :: 延迟两小时(7200秒),/nobreak防止用户按任意键跳过等待 Echo 等待两小时后继续备份... timeout /t 7200 /nobreak >nul goto loop
方案2:Windows任务计划程序(推荐,稳定不占资源)
这个方案不需要脚本一直运行,系统会定时自动触发备份,是生产环境下的首选:
- 按下
Win + R,输入taskschd.msc打开任务计划程序 - 点击右侧的「创建基本任务」,跟着向导操作:
- 任务名称:比如「Accounts数据库自动备份」,描述可填可不填
- 触发器:选择「每天」,下一步设置重复任务间隔为2小时,持续时间选「无限期」
- 操作:选择「启动程序」,浏览找到你修改后的批处理脚本(比如
BackupAccounts.bat) - 完成前勾选「当单击“完成”时,打开此任务属性的对话框」,点击完成
- 在任务属性窗口里做优化:
- 「条件」选项卡:取消勾选「只有在计算机使用交流电源时才启动此任务」(笔记本用户必备)
- 「设置」选项卡:勾选「如果任务失败,每隔5分钟重试3次」,提升备份可靠性
额外注意事项
- 如果你的系统日期格式不是
YYYY/MM/DD,可能需要调整时间戳的截取参数:先在命令行输入echo %date%和echo %time%查看格式,再修改%date:~x,y%的数值 - 确保
H:\Accounts.mdb文件有读取权限,备份文件夹有写入权限
内容的提问来源于stack exchange,提问作者Craig Wheeler
相关产品推荐
相关产品推荐

