首页/系统/Windows 运维速查/xcopy 复制目录树
CMD 常用命令74 条

xcopy 复制目录树

经典目录复制命令:整树复制、可按时间与属性筛选;老系统现场仍常见,新场景建议直接用 robocopy。

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

xcopy 是什么

xcopy 是 Windows 自带的目录树复制命令,支持整树复制、按日期或属性筛选、只搬运归档位为新的文件。它在老系统与既有批处理里非常常见,但官方已经推荐改用 robocopy:xcopy 不擅长长路径、出错重试与实际状态回报都比较弱。

基本信息

适用平台Windows CMD,从 XP 至今的客户端与服务器系统均内置
语法xcopy 源 [目标] [/E] [/I] [/Y] [/C] [/H] [/S] [/D[:日期]] [/T] [/O] [/X]
常用参数/E 含空目录、/S 不含空目录、/I 目标按目录处理、/Y 覆盖不提示、/C 出错继续、/H 含隐藏与系统文件、/D 只复制较新文件、/T 只建目录结构
退出码0 成功、1 无文件可复制、2 用户中断、4 初始化错误、5 磁盘写入错误
推荐替代需要镜像同步或保权限时用 robocopy

典型使用场景

  • 网站目录整体备份到另一块盘,同时保留空目录结构
  • 增量搬运:只复制上次备份之后修改过的文件,减少拷贝量
  • 只生成目录骨架不搬内容,用于快速铺一套模板结构
  • 数据迁移前先做一次预演复制,核对文件数量与目录层级
  • 维护老脚本:既有 .bat 里大量 xcopy 调用,需要看懂参数再改

常用示例

常用示例
REM 整树复制并保留空目录,目标自动按目录处理
xcopy D:\Web D:\Backup\Web /E /I /Y
REM 只复制今天之后修改过的文件(按日期增量)
xcopy D:\Src D:\Dst /D /Y
REM 只生成目录骨架,不复制文件内容
xcopy D:\Tree D:\Skeleton /T /E
REM 连隐藏与系统文件一起带(谨慎)
xcopy D:\Data D:\Backup\Data /E /H /Y
REM 批处理里按退出码判断(从大到小判断)
if errorlevel 5 echo 磁盘写入失败
if errorlevel 1 echo 无新文件或用户中断

退出码读法

退出码含义常见原因
0复制完成正常结束
1没有找到要复制的文件源为空,或 /D 筛选后没有新文件
2用户中止交互过程中按下 Ctrl+C
4初始化错误内存或磁盘空间不足、路径非法
5磁盘写入错误目标盘满、权限不足或被占用
源路径末尾带不带反斜杠会改变语义:一种是把目录内容复制过去,另一种是把目录本身复制过去。执行前先用 echo 打印完整命令核对,比事后翻备份更省事。
xcopy 默认不保留权限与审计信息,/O 加 ACL、/X 加审计设置,但跨域或目标文件系统不支持时会失败。需要完整镜像、保权限、断点重试的场景直接用 robocopy。

易错点

  • 漏写 /E 会把空目录跳过,还原后目录结构残缺,依赖目录存在的程序启动时报路径不存在
  • 目标已存在同名文件而没加 /Y 时,xcopy 会停下来问“是否覆盖”,无人值守的计划任务就卡死在那里
  • 目标不是已存在目录时没加 /I,xcopy 会追问目标是文件还是目录,脚本里必须补上 /I 或确保目标已建好
  • 深层目录超过约 260 字符路径上限会直接失败,递归层级深的数据改用 robocopy
  • 退出码 1 常被当成失败,其实含义是“没有可复制的文件”,判断逻辑要把它与真正的错误区分开

数据来源与参考

  • Microsoft Learn:xcopy 命令

相关工具

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