首页/系统/Windows 运维速查/copy / xcopy / robocopy 怎么选
CMD 常用命令74 条

copy / xcopy / robocopy 怎么选

三个复制命令的定位差异与选择建议:从单文件到生产级同步,选错工具会丢权限、丢隐藏文件或无法失败重试。

Windows 运维速查系统更新于 2026-10-13

三个命令怎么选

copy、xcopy、robocopy 分属三代复制工具:copy 处理单文件与二进制合并,xcopy 能复制目录树但没有重试与日志,robocopy 面向生产同步,支持重试、多线程、日志、权限保留与镜像。选择依据是数据规模、是否要保留权限、失败后是否需要自动重试。

退出码怎么判

robocopy 的退出码是位标志:0 表示无变化,1 表示有文件复制成功,2 表示目标侧存在额外文件,4 表示有不匹配项,8 及以上才是复制失败。脚本判定应写成“退出码大于等于 8 才算失败”,把所有非 0 都当错误是最常见的误报来源;copy 与 xcopy 只有 0 与 1 的语义,信息量远小于 robocopy。

基本信息

适用平台copy 与 xcopy 各版本内置;robocopy 自 Windows Vista / Server 2008 起内置
语法copy 源 目标;xcopy 源 目标 /E /I;robocopy 源 目标 /E /COPY:DAT /R:2 /W:2 /LOG:日志
权限保留只有 robocopy 的 /COPYALL(或 /COPY:DATS)能带上 ACL 与属主
退出码robocopy 0-7 均属正常,8 及以上才是错误

典型使用场景

  • 复制单个或少量文件:copy 最短最直接
  • 目标环境缺少 robocopy 时的兜底:用 xcopy 复制目录树
  • 生产同步:需要失败重试、留日志、保留权限,用 robocopy
  • 两盘镜像或部署目录覆盖:robocopy /MIR
  • 排除目录、只复制更新过的文件:robocopy /XD 与 /XO 更完整

同一任务的三种写法

同一任务的三种写法
copy D:\a\x.txt D:\b\                                  # 单文件复制
xcopy D:\a D:\b /E /I /Y                                 # 目录树复制,老系统兜底
robocopy D:\a D:\b /E /COPY:DAT /R:2 /W:2 /LOG:D:\b\copy.log   # 生产同步
robocopy D:\a D:\b /MIR /COPYALL                         # 镜像并保留权限与属主
robocopy D:\a D:\b /E /XD cache /XO                      # 排除 cache,只复制更新的文件

三类工具对照

维度copyxcopyrobocopy
目录树不支持支持 /E支持 /E 或 /MIR
权限与属主不保留部分支持且不稳定支持 /COPYALL
失败重试无无有 /R 与 /W
日志无无有 /LOG 与 /TEE
多线程无无有 /MT
退出码0/10/1 等0-7 正常,8 及以上错误
老脚本从 xcopy 迁到 robocopy 时注意参数并非一一对应:xcopy /S 不复制空目录,而 robocopy /E 会复制空目录,替换后目录结构可能变化。
新脚本一律优先 robocopy:退出码、日志与重试机制对自动化最友好;只有目标环境缺 robocopy 时才退回 xcopy。
/MIR 会删除目标侧多余文件:把源与目标写反会直接清空生产目录,脚本里应把两个路径写成命名参数并做存在性校验。

易错点

  • 用 copy 复制整个目录会报参数错误,这不是权限问题
  • 迁移共享目录时用 xcopy 可能丢权限,访问时被拒绝,应改用 robocopy /COPYALL
  • 把 robocopy 非 0 退出码当失败,脚本会误报并中断后续步骤
  • xcopy /S 与 robocopy /E 对空目录处理不同,替换工具后目录结构会变
  • copy 不保留 ACL 与备用数据流,用来搬配置文件可能丢安全设置

数据来源与参考

  • Microsoft Learn:copy / xcopy / robocopy 命令文档

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌