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

Robocopy批处理脚本优化:指定子文件夹排除与增量备份需求

优化批处理备份脚本方案

1. 带子文件夹路径的排除参数处理

不管是清理J盘时排除目录,还是Robocopy复制时排除目录,直接指定完整路径或相对根目录的子路径即可,路径含空格需用引号包裹。

比如要排除J:\Folder One\Folder One Sub Folder,清理阶段可直接用完整路径做匹配判断;复制阶段若用相对源目录(I:\)的路径,写"Folder One\Folder One Sub Folder"即可被Robocopy识别。

2. 实现增量复制(仅新增/变更文件)

Robocopy默认逻辑就是仅复制:源存在但目标无的文件、源与目标文件大小/修改时间不一致的文件。搭配合适参数可精准控制,同时结合排除目录需求完成备份。

完整优化脚本

@echo off
setlocal enabledelayedexpansion

:: 定义J盘需保留的目录(支持带子文件夹的完整路径)
set "keep_dirs=J:\Folder One J:\Folder Two J:\Folder One\Folder One Sub Folder J:\System Volume Information J:\$Recycle.bin"

:: 第一步:清理J盘非保留目录及根文件
echo 正在清理J盘冗余内容...
:: 遍历删除根目录下非保留子目录
for /d %%d in (J:\*) do (
    set "current_dir=%%d"
    set "keep=0"
    for %%k in (%keep_dirs%) do (
        if "!current_dir!"=="%%k" set "keep=1"
    )
    if !keep! equ 0 rd /s /q "%%d"
)
:: 删除根目录下所有文件
for %%f in (J:\*) do del /f /q "%%f"

:: 第二步:增量复制I盘内容到J盘,排除指定目录
echo 开始增量备份...
robocopy "I:\" "J:\" /E /XD "Folder One" "Folder Two" "Folder One\Folder One Sub Folder" "System Volume Information" "$Recycle.bin" /R:3 /W:5 /NP

echo 备份完成!
endlocal

核心参数说明

  • 清理逻辑:用for /d遍历J盘根目录子目录,对比保留列表,非保留目录直接删除;再清理根目录下的零散文件。
  • Robocopy参数:
    • /E:复制所有子目录(含空目录)
    • /XD:指定需排除的目录,支持带子文件夹的相对路径
    • /R:3:文件复制失败时重试3次
    • /W:5:重试间隔5秒
    • /NP:不显示复制进度百分比(简化输出)

注意事项

  • System Volume Information和$Recycle.bin是系统保护目录,需以管理员权限运行脚本才能正常操作。
  • Robocopy返回码0-7均为正常完成状态,无需因非0返回码判定脚本失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 12:57:05