You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

批处理文件备份脚本改造需求:实现每两小时自动备份功能

没问题,我帮你改造这个脚本,同时实现每两小时自动备份的需求。咱们分两步来:先把手动输入文件名改成自动生成唯一的时间戳文件名(避免覆盖旧备份),再提供两种定时执行的方案——脚本内部循环或者用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任务计划程序(推荐,稳定不占资源)

这个方案不需要脚本一直运行,系统会定时自动触发备份,是生产环境下的首选:

  1. 按下Win + R,输入taskschd.msc打开任务计划程序
  2. 点击右侧的「创建基本任务」,跟着向导操作:
    • 任务名称:比如「Accounts数据库自动备份」,描述可填可不填
    • 触发器:选择「每天」,下一步设置重复任务间隔为2小时,持续时间选「无限期」
    • 操作:选择「启动程序」,浏览找到你修改后的批处理脚本(比如BackupAccounts.bat)
    • 完成前勾选「当单击“完成”时,打开此任务属性的对话框」,点击完成
  3. 在任务属性窗口里做优化:
    • 「条件」选项卡:取消勾选「只有在计算机使用交流电源时才启动此任务」(笔记本用户必备)
    • 「设置」选项卡:勾选「如果任务失败,每隔5分钟重试3次」,提升备份可靠性

额外注意事项

  • 如果你的系统日期格式不是YYYY/MM/DD,可能需要调整时间戳的截取参数:先在命令行输入echo %date%和echo %time%查看格式,再修改%date:~x,y%的数值
  • 确保H:\Accounts.mdb文件有读取权限,备份文件夹有写入权限

内容的提问来源于stack exchange,提问作者Craig Wheeler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:11:03