robocopy 命令用于复制文件夹和子文件夹?

2025年3月17日 | 阅读 12 分钟

Windows 命令行中一个可靠的文件复制命令称为 robocopy。它允许用户在不同位置之间移动磁盘、文件夹文件

Robocopy 自首次包含在 Windows NT4 资源包中以来的 25 年里,并没有经历太多改动。但是,SMB 压缩是新增功能之一,但用法保持不变。Robocopy 具有许多出色的功能,例如复制 NTFS ACLs(权限)的能力,是文件复制/镜像操作最棒的免费应用程序之一。

What is the robocopy command to copy folders and subfolders

对于以下Microsoft 操作系统,robocopy.exe 是一个可以使用的第三方命令。

  • Windows NT (在资源包中)
  • MS Windows 2000 (在资源包中)
  • Operating System 2008
  • OS Windows Vista
  • OS Window 7
  • OS Window 8
  • OS Window 10
  • OS Windows 10

Windows 10 和 11 的语法

ROBOCOPY 源 目标 [文件 [文件]...] [选项]

源目录(服务器共享路径或驱动器:路径)。

  • 目标

这是期望的目录(驱动器:路径或服务器共享路径)。

  • 文件

名称/通配符:默认值为“*.*”)要复制的文件。

复制选项

  • /S

复制子目录,但不是空的。

  • /E

用于复制子目录,即使是空的。

  • /LEV:n

源目录树应只复制到 n 层

  • /Z :

以可恢复模式复制文件。

  • /B

创建文件的备份副本。

  • /ZB

切换到可恢复模式。当访问被拒绝时,进入备份模式。

  • /J

使用无缓冲 I/O 复制(建议用于大文件)。

  • /EFSRAW

EFS RAW 模式下,复制所有加密文件。

  • /COPY:[copyflags]

(/COPY: DAT 是默认值)要为文件复制什么。

Copyflags:数据 (D)、属性 (A) 和时间戳 (T))。

O = 所有者信息U = 审计信息S = 安全=NTFS ACLs

  • /SEC

安全文件复制相当于 /COPY: DATS

  • /COPYALL

用于复制所有文件信息(相当于 /COPY: DATSOU)。

  • /NOCOPY

不复制文件信息(配合 /PURGE 使用)。

  • /SECFIX

修复所有文件的安全属性,即使是跳过的文件。

  • /TIMFIX

修复所有文件的修改时间,即使是跳过的文件。

  • /PURGE

如果目标文件或目录已从源中删除,则删除它们。

  • /MIR

/E 加上 /PURGE 等同于镜像目录树。

  • /MOV

移动文件(复制后从源中删除)。

  • /MOVE

移动文件和目录(复制后从源中删除)。

  • /A+:[RASHCNET]

用于将指定的属性添加到复制的文件中。

  • /A-:[RASHCNET]

用于从复制的文件中移除指定的属性。

  • /CREATE

用于创建零长度的目录树和文件。

  • /FAT:

用于生成最终文件,仅使用8.3 FAT 文件名。

  • /256 :

它禁用了对长路径(超过256 个字符)的支持。

  • /MON:n

监视源;当检测到超过n 次更改时重新运行。

  • /MOT:m

监视源;如果有任何更改,则在m 分钟后重新运行。

  • /RH:hhmm-hhmm

运行小时是新复制可以开始的时间窗口。

  • /PF

用于检查每个文件的运行小时,而不是每个传递。

  • /IPG:n

每秒数据包间隔 (ms),在慢速线路上释放带宽。

  • /SJ

复制连接点作为连接点,而不是作为连接点目标。

  • /MT[:n]

使用n 个线程执行多线程复制(默认 8)。n 必须至少为1,最多为128/IPG/EFSRAW 选项与此选项不兼容。您可以使用 /LOG 选项重定向输出以提高性能。

  • /DCOPY:[copyflags]

目录复制内容的默认值为 /DCOPY: DA。(Copyflags:数据、属性、时间戳、EA 和跳过备用数据流)。

  • /NODCOPY

不复制目录信息(默认/DCOPY: DA 已完成)。

  • /NOOFFLOAD

在不使用 Windows Copy Offload 技术的情况下复制文件。

  • /COMPRESS

如果合适,请求在传输文件时进行网络压缩。

文件复制限流选项

  • /IoMaxSize:n[KMG]

n [KMG] 字节是每个读/写周期请求的最大I/O大小。

  • /IoRate:n[KMG]

请求的 I/O 速率为每秒 [KMG] 字节

  • /Threshold:n[KMG]

n [KMG] 字节是用于限流的文件大小阈值(参见注释)。

文件选择选项

  • /A

仅复制具有存档属性集的文件。

  • /M

重置属性并仅复制具有“存档”属性的文件。

  • /IA:[RASHCNETO]

除非指定了以下至少一个特征,否则不包含任何文件。

  • /XA:[RASHCNETO]

如果文件具有上述任何属性,则将其排除。

  • /XF file [file]...

排除具有指定名称、路径通配符的文件。

  • /XD dirs [dirs]...

排除具有指定名称或路径的文件夹。

  • /XC

排除已修改的文件。

  • /XN

排除较新的文件。

  • /XO

排除较旧的文件。

  • /XX

排除补充的文件夹和文件。

  • /XL

排除任何单独的文件和目录。

  • /IS

包含相同的文件。

  • /IT

包含已修改的文件。

  • /MAX:n

大于n 字节的文件将被忽略,作为最大文件大小。

  • /MIN:n

排除大小为 n 字节或更小的文件。

  • /MAXAGE:n

由于最大文件年龄,排除比n 天/日期旧的文件。

  • /MINAGE:n

排除小于n 天/日期的文件,作为最小文件年龄。

  • /MAXLAD:n

排除最大最后访问日期为n的文件。

  • /MINLAD:n

排除最后访问日期在 n 天之后的文件。(如果n 1900,n 等于天数;否则,n日期,格式为YYYYMMDD)。

  • /FFT

考虑FAT 文件时间2 秒粒度)。

  • /DST

通过一个小时来弥补DST 时间差异

  • /XJ

排除连接点和符号链接(文件文件夹)。

  • /XJD

不应有目录和连接点的符号连接。

  • /XJF :

排除文件符号链接。

  • /IM

包含已修改的文件(更改时间不同)。

重试选项

  • /R:n

每次失败复制的重试次数默认为1,000,000

  • /W:n

默认情况下,重试之间有30 秒等待时间。

  • /REG

用于将/R:n/W:n 的默认值保存在注册表中。

  • /TBD

用于等待共享名称指定(重试错误 67)。

  • /LFSM

用于在低可用空间模式下操作时暂停恢复复制功能(参见注释)。

  • /LFSM:n[KMG]

n [K: 千字节, M: 兆字节, G: 吉字节] 字节为地板大小,以及/LFSM 命令

日志记录选项

  • /L

不复制、不添加时间戳、不删除任何文件;仅列出它们。

  • /X

不仅包括选定的文件,还包括任何附加文件。

  • /V

用于创建详细输出,并显示跳过的文件。

  • /TS

在结果中包含源文件的修改时间。

  • /FP

在输出中包含带有完整路径的文件名。

  • /BYTES

以字节为单位显示大小。

  • /NS

如果没有大小,则不记录文件大小。

  • /NC

如果没有类,则不记录文件类。

  • /NFL

不记录文件名或文件列表。

  • /NDL

不记录目录名称;不提供目录列表。

  • /NP

如果没有进度,则不显示复制的 %

  • /ETA

显示已复制文件的预计到达时间。

  • /LOG: file

LOG 文件作为状态输出(覆盖现有日志)。

  • /LOG+:file

将 LOG 文件作为状态输出(追加到现有日志)。

  • /UNILOG: file

创建一个UNICODE 日志文件作为输出状态(覆盖现有日志)。

  • /UNILOG+:file

创建一个UNICODE 日志文件作为输出状态(追加到现有日志)。

  • /TEE

创建日志文件并将其输出到控制台窗口。

  • /NJH

无作业头。

  • /NJS

无职位描述。

  • /UNICODE

用于以 UNICODE 格式显示输出。

作业选项

  • /JOB: jobname

应使用命名作业文件的参数。

  • /SAVE jobname

用于将参数保存到指定的作业文件中。

  • /QUIT

命令已处理,退出(查看参数)。

  • /NOSD

无源目录。

  • /NODD

无指定的目标目录。

  • /IF

添加下面列出的文件。

以前,在卷的根目录上使用/PURGE/MIR会使 robocopy 对System Volume Information目录中的文件执行指定的操作。现在不再是这样了。如果提供了/PURGE/MIR,robocopy 将跳过复制会话的顶级源和目标目录中的任何同名文件或目录。

修改文件的分类仅适用于源和目标文件系统(如NTFS)支持更改时间戳并且源和目标文件具有不同更改时间的情况。默认情况下,某些文件不会被复制;输入/IM将其包含在内。

/DCOPY: E 标志要求复制目录的扩展属性。应注意的是,robocopy 目前即使目录的 EA 无法复制,也会继续进行。/COPYALL 也不包含此标志。

使用/LFSM 命令行选项Robocopy 被要求在“低可用空间模式”下运行。在该模式下,当目标卷的可用空间低于预设的“地板”值时,文件复制将暂停 robocopy,该值可以通过该标志的 LFSM:n[KMG] 变体明确定义。如果/LFSM 在没有地板值的情况下提供,则使用目标卷大小的百分之十作为地板。命令/MT, /EFSRAW, /B,/ZB 在低可用空间模式下不起作用。

Windows 8 及更早版本的语法

ROBOCOPY 源 目标 [文件 [文件]...] [选项]

源目录(服务器共享路径或驱动器:路径)。

  • 目标

这是期望的目录(驱动器:路径或服务器共享路径)。

  • 文件:

复制指定的文件(名称/通配符:默认值为“*.*”)。

复制选项

  • /S

复制子目录,但不是空的。

  • /E

复制所有子目录,即使是空的。

  • /LEV:n

仅复制源目录树的顶层 n 层。

  • /Z

用于以可恢复模式复制文件。

  • /B

创建文件的备份副本。

  • /ZB

它使用可恢复模式。当访问被阻止时,进入备份模式。

  • /EFSRAW

以 EFS RAW 模式复制所有加密文件。

  • /COPY:[copyflags]

(/COPY: DAT 是默认值) 要为文件复制什么。(Copyflags:数据 (D)、属性 (A)时间戳 (T))。

O=所有者信息,U=审计信息,S=安全=NTFS ACLs.

  • /DCOPY: T

复制目录中的时间戳。

  • /SEC

安全文件复制相当于 /COPY: DATS

  • /COPYALL

/COPY: DATSOU的等价物是复制整个文件信息。

  • /NOCOPY

不复制文件信息(配合 /PURGE 使用)。

  • /SECFIX

它修复所有文件的文件安全属性,即使是跳过的文件。

  • /TIMFIX

所有文件的时间戳都应被修复,包括跳过的文件。

  • /PURGE

如果目标文件或目录已从源中删除,则删除它们。

  • /MIR

/E 加上 /PURGE 等同于镜像目录树。

  • /MOV

移动文件(复制后从源中删除)。

  • /MOVE

移动文件和目录(复制后从源中删除)。

  • /A+:[RASHCNET]

将复制的文件现在具有指定的属性。

  • /A-:[RASHCNET]

从复制的文件中移除指定的属性。

  • /CREATE

仅创建零长度的目录树和文件。

  • /FAT

它使用 8.3 FAT 文件名生成最终文件。

  • /256 :

它禁用了对长路径(超过 256 个字符)的支持。

  • /MON:n

监视源;当检测到超过 n 次更改时重新运行。

  • /MOT:m

监视源;如果有任何更改,则在 m 分钟后重新运行。

  • /RH:hhmm-hhmm

运行小时 - 新复制可以开始的时间窗口。

  • /PF

对于每个文件,而不是每个传递,检查运行小时。

  • /IPG:n

每秒数据包间隔 (ms),在慢速线路上释放带宽。

  • /SL

它复制符号连接而不是目标。

  • /MT[:n]

它进行n 线程多线程复制(默认 8)。n 的值必须至少为1,最多为128/IPG/EFSRAW 选项与此选项不兼容。为了获得更好的性能,请使用 /LOG 选项重定向输出。

文件选择选项

  • /A

仅复制具有存档属性集的文件。

  • /M :

用于重置属性并仅复制具有“存档”属性的文件。

  • /IA:[RASHCNETO]

除非指定了以下至少一个特征,否则不包含任何文件。

  • /XA:[RASHCNETO]

如果文件具有上述任何属性,则将其排除。

  • /XF file [file]...

排除具有指定通配符、路径或名称的文件。

  • /XD dirs [dirs]...

禁止具有指定名称或路径的文件夹。

  • /XC

排除已修改的文件。

  • /XN

排除较新的文件。

  • /XO

排除较旧的文件。

  • /XX

排除补充的文件夹和文件。

  • /XL

删除单独的文件和文件夹。

  • /IS

添加相同的文件。

  • /IT

使用此命令包含已修改的文件。

  • /MAX:n

大于 n 字节的文件将被忽略,作为最大文件大小。

  • /MIN:n

大小为n 字节或更小的文件将被排除。

  • /MAXAGE:n

由于最大文件年龄,排除比n 天/日期旧的文件。

  • /MINAGE:n

文件必须至少为 n 天或更旧才能包含。

  • /MAXLAD:n

排除最大最后访问日期为 n 的文件。

  • /MINLAD:n

排除最后访问日期在 n 天之后的文件。(如果n 1900,n 等于天数;否则,n日期,格式为YYYYMMDD)。

  • /XJ

不包含连接点。(通常默认包含)。

  • /FFT

考虑FAT 文件时间(2 秒粒度)。

  • /DST

它通过一个小时来弥补DST 时间差异

  • /XJD

排除目录连接点。

  • /XJF

排除文件连接位置。

重试选项

  • /R:n

不成功复制的重试次数默认为1,000,000

  • /W:n

默认情况下,重试之间有30 秒等待时间。

  • /REG

它将/R:n/W:n 的默认值保存在注册表中。

  • /TBD

等待共享名称指定(重试错误 67)。

日志记录选项

  • /L

不复制、不添加时间戳、不删除任何文件;仅列出它们。

  • /X

报告所有附加文件,而不仅仅是您选择的文件。

  • /V

用于创建详细输出,并显示跳过的文件。

  • /TS

在结果中包含源文件的修改时间。

  • /FP

在输出中包含带有完整路径的文件名。

  • /BYTES

以字节为单位显示大小。

  • /NS

如果没有大小,则不记录文件大小。

  • /NC

如果没有类,则不记录文件类。

  • /NFL

不记录文件名或文件列表。

  • /NDL

如果没有提供目录列表,则不记录目录名称。

  • /NP

如果没有进度,则不显示复制的百分比。

  • /ETA

显示已复制文件的预计到达时间。

  • /LOG: file

LOG 文件作为状态输出(覆盖现有日志)。

  • /LOG+:file

将 LOG 文件作为状态输出(追加到现有日志)。

  • /UNILOG: file

创建一个UNICODE 日志文件作为输出状态(覆盖现有日志)。

  • /UNILOG+:file

创建一个 UNICODE 日志文件作为输出状态(追加到现有日志)。

  • /TEE

创建日志文件并将其输出到控制台窗口。

  • /NJH

零作业头。

  • /NJS

无作业描述。

  • /UNICODE

输出为 UNICODE 格式。

作业选项

  • /JOB: jobname

应使用命名作业文件的参数。

  • /SAVE jobname

将参数保存到指定的作业文件中。

  • /QUIT

处理完命令行后退出(查看参数)。

  • /NOSD

无源目录。

  • /NODD

无指定的目标目录。

  • /IF

添加下面列出的文件。

robocopy 示例

robocopy c:\hope c:\hope2 *.txt

在此第一个示例中,任何.txt 文件都将从hope目录复制到hope2目录。每次要复制单个文件或多个文件而不是整个目录时,都必须在目标目录之后提供文件名。

robocopy c:\hope c:\hope2

在上述说明中,robocopy 命令将复制 hope 目录中的所有文件(而不是目录)到 hope2 目录。

robocopy c:\hope c:\hope2 /e

hope 目录和 hope2 目录都将复制其所有文件和文件夹,包括空的文件夹

robocopy c:\hope c:\hope2 /MIR

此示例在镜像c:hopec:hope2的内容时,会删除 hope2 目录中不存在于 hope 目录中的任何文件。由于/mir开关会删除与目标目录中不匹配的文件,因此请谨慎使用。

robocopy \\computer\hope C:\hope2

此示例中的下一步是将位于名为 computer 的网络计算机上的 hope 目录中的任何文件复制到当前计算机上的 hope2 目录。


下一个主题什么是设备名称