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

如何编写批处理文件排除当日录制文件夹实现NVR视频备份?

批处理自动备份NVR录像(排除当日文件夹)

核心实现思路

  1. 自动生成当日日期(格式MMDDYY,如013124),作为需要排除的目标文件夹名称
  2. 遍历NVR录像存储目录,复制除当日文件夹外的所有内容到网络共享目录
  3. 保留原备份逻辑的完整性参数,或改用更稳定的工具优化备份效果

批处理代码实现

方案1:基于xcopy的适配实现

@echo off
setlocal enabledelayedexpansion

:: 配置源目录与共享目录路径
set "sourceDir=C:\Users\profile\Videos\Recordings"
set "targetDir=R:\Recordings"

:: 获取当日日期并转为MMDDYY格式(适配中文系统日期格式)
for /f "tokens=1-3 delims=/" %%a in ('echo %date%') do (
    set "month=%%a"
    set "day=%%b"
    set "year=%%c"
)
set "today=!month!!day!!year:~-2!"

:: 遍历源目录文件夹,排除当日目录后执行备份
for /d %%d in ("%sourceDir%\*") do (
    set "folderName=%%~nxd"
    if not "!folderName!"=="%today%" (
        xcopy "%%d\*" "%targetDir%\!folderName!\" /I /F /E /C /Y
    )
)

endlocal
echo 备份完成

方案2:改用robocopy(推荐,大文件备份更稳定)

robocopy支持更丰富的排除规则与错误处理,适合录像文件备份场景:

@echo off
setlocal enabledelayedexpansion

set "sourceDir=C:\Users\profile\Videos\Recordings"
set "targetDir=R:\Recordings"

:: 获取当日日期并转为MMDDYY格式
for /f "tokens=1-3 delims=/" %%a in ('echo %date%') do (
    set "today=%%a%%b%%c:~-2!"
)

:: 复制除当日文件夹外的所有内容
robocopy "%sourceDir%" "%targetDir%" /E /XD "%sourceDir%\%today%" /COPYALL /R:3 /W:5 /NP

endlocal
echo 备份完成

关键参数说明

  • /I:若目标目录不存在且复制对象为目录,自动创建目标目录
  • /E:复制所有子目录,包含空目录
  • /C:忽略复制错误,继续执行备份
  • /Y:覆盖目标文件时不弹出确认提示
  • robocopy的/XD:指定需要排除的目录
  • robocopy的/COPYALL:复制文件的所有属性(权限、时间戳等)

后续配置步骤

  1. 将上述代码保存为NVR_Backup.bat文件
  2. 通过Windows任务计划程序,设置任务在每日凌晨12:02自动运行该批处理
  3. 确保执行任务的系统账户拥有源目录的读取权限,以及共享目录的写入权限

内容的提问来源于stack exchange,提问作者Keith Howard

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 23:22:21