xcopy命令详解

参考:参考链接

如何cmd命令帮助文档

在命令后面输入/?即可查看帮助文档,注意斜杠前面有个空格。

copy命令

先来查看copy命令的帮助文档:copy /?:

C:\Users\lan>copy /?

将一份或多份文件复制到另一个位置。

COPY [/D] [/V] [/N] [/Y | /-Y] [/Z] [/L] [/A | /B ] source [/A | /B]

    [+ source [/A | /B] [+ ...]] [destination [/A | /B]]

  source      指定要复制的文件。

  /A          表示一个 ASCII 文本文件。

  /B          表示一个二进位文件。

  /D          允许解密要创建的目标文件

  destination  为新文件指定目录和/或文件名。

  /V          验证新文件写入是否正确。

  /N          复制带有非 8dot3 名称的文件时,

              尽可能使用短文件名。

  /Y          不使用确认是否要覆盖现有目标文件

              的提示。

  /-Y          使用确认是否要覆盖现有目标文件

              的提示。

  /Z          用可重新启动模式复制已联网的文件。

/L          如果源是符号链接,请将链接复制

              到目标而不是源链接指向的实际文件。

命令行开关 /Y 可以在 COPYCMD 环境变量中预先设定。

这可能会被命令行上的 /-Y 替代。除非 COPY

命令是在一个批处理脚本中执行的,默认值应为

在覆盖时进行提示。

要附加文件,请为目标指定一个文件,为源指定

数个文件(用通配符或 file1+file2+file3 格式)。

可以看到copy命令是用来复制文件的。

实例

直接覆盖同名文件

如果D盘根目录下已经存在了一个名为test.txt的文件,那么,复制过去的时候,copy命令就会提示你是覆盖原文件、是放弃复制还是覆盖所有文件。如果你在批量复制的时候,一概覆盖原文件,那么,一个一个地选择十分麻烦,这个时候,你可以使用不加提示就覆盖原文件的参数 /y (相当于自动选择了Yes选项),完整的命令为:copy /y d:\test\test.txt d:\testcopy

复制改名

如果复制的时候,你还需要把源文件改个名,比如把test.txt改为1.txt的时候,可以直接使用:copy d:\test\test.txt d:\testcopy\1.txt 这样的命令,也就是说,在指定目的路径的时候,直接指定文件名,那么,新的文件名就是源文件复制之后的名字

路径中带空格等特殊符号

如果要复制的路径带有空格、&等特殊符号的时候,请使用引号把这些特殊字符括起来,比如:copy "d:\test abc\test.txt" "d:\test©"

合并文件

copy命令除了“复制”文件的功能外,还有一个绝活:合并多个文件为一个文件,具体的格式为:

copy 文件1+文件2+文件3+…… 目的路径\新文件名 。例如:copy d:\test.txt+d:\abc.txt d:\test\test.txt,那么,就把D盘根目录下的test.txt和abc.txt两个文件的内容合并为test.txt,并保存到d:\test目录下。

必须注意的是,copy只能复制文件,对于文件夹的复制,则需要另请高明,动用xcopy来复制。xcopy是copy的高级版本,有更丰富的参数,能实现更加复杂的功能,通吃文件和文件夹的复制。

xcopy命令

还是先查看帮助文档,xcopy /?:

C:\Users\lan>xcopy /?

复制文件和目录树。

XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W]

                          [/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U]

                          [/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z] [/B] [/J]

                          [/EXCLUDE:file1[+file2][+file3]...]

  source      指定要复制的文件。

  destination  指定新文件的位置和/或名称。

  /A          仅复制有存档属性集的文件,

              但不更改属性。

  /M          仅复制有存档属性集的文件,

              并关闭存档属性。

  /D:m-d-y    复制在指定日期或指定日期以后更改的文件。

              如果没有提供日期,只复制那些

              源时间比目标时间新的文件。

  /EXCLUDE:file1[+file2][+file3]...

              指定含有字符串的文件列表。每个字符串

              在文件中应位于单独的一行。如果任何

              字符串与复制文件的绝对路径的任何部分相符,

              则排除复制该文件。例如,

              指定如 \obj\ 或 .obj 的字符串会分别

              排除目录 obj 下面的所有文件或带有

              .obj 扩展名的所有文件。

  /P          创建每个目标文件之前提示你。

  /S          复制目录和子目录,不包括空目录。

  /E          复制目录和子目录,包括空目录。

              与 /S /E 相同。可以用来修改 /T。

  /V          验证每个新文件的大小。

  /W          提示你在复制前按键。

  /C          即使有错误,也继续复制。

  /I          如果目标不存在,且要复制多个文件,

              则假定目标必须是目录。

  /Q          复制时不显示文件名。

  /F          复制时显示完整的源文件名和目标文件名。

  /L          显示要复制的文件。

  /G          允许将加密文件复制到

              不支持加密的目标。

  /H          也复制隐藏文件和系统文件。

  /R          覆盖只读文件。

  /T          创建目录结构,但不复制文件。不

              包括空目录或子目录。/T /E 包括

              空目录和子目录。

  /U          只复制已经存在于目标中的文件。

  /K          复制属性。一般的 Xcopy 会重置只读属性。

  /N          用生成的短名称复制。

  /O          复制文件所有权和 ACL 信息。

  /X          复制文件审核设置(隐含 /O)。

  /Y          取消提示以确认要覆盖

              现有目标文件。

  /-Y          要提示以确认要覆盖

              现有目标文件。

  /Z          在可重新启动模式下复制网络文件。

  /B          复制符号链接本身与链接目标。

  /J          复制时不使用缓冲的 I/O。推荐复制大文件时使用。

开关 /Y 可以预先在 COPYCMD 环境变量中设置。

这可能被命令行上的 /-Y 覆盖。

xcopy实例

只复制更新过的文件

在备份的时候,源目录中有些文件更新过,有些文件没更新过。我们只需要复制更新过的文件即可,没必要一股脑复制(覆盖)。

例如:

xcopy E:\Blog\blog5\source\_posts E:\Blog\blog5MD /e /Y /d

1

就是把E:\Blog\blog5\source\_posts这个下的子目录树,复制到E:\Blog\blog5M中,

参数描述:

/e 参数表示,复制E:\Blog\blog5\source\_posts下面的目录和子目录,包括空目录

/y参数表示,如果目标目录下有同名文件了,不询问,就直接覆盖。

/d对应同名文件,只复制那些源文件时间比目标文件时间新的那些文件。这样可以节省复制的操作。就不会全部一股脑的复制(覆盖)。

复制隐藏文件

如只是单纯地复制一个目录内的所有文件到另一个目录中上,就输入xcopy 源目录 目的目录 /s /h,如果复制到一半你发现不对劲,可以按键盘热键“Ctrl " +“Pause /break” 二个热键 来中断复制。

/s 表示复制目录或子目录

/h 表示复制隐藏文件,系统文件

例如xcopy E:\Blog\blog5\source\_posts\java* E:\Blog\blog5Test /s /h

从中断处继续复制

如果想把E:\ 盘上所有文件复制到D:\盘上,分为今天复制一点,明天再接着复制一些,后天再接着复制一些。或者是某种原因上次没有复制完成,今天想接着复制。(这种情况是经常在复制文件中出现的)那可怎么办才好呢?

那就输入 xcopy 源目录 目标目录 /s /h /d /y就行啦。他能查出那些文件是已经复制过去啦,那些文件还没有复制过去的。

/s 复制目录和子目录,不复制空目录

/h 复制隐藏文件以及系统文件

/d 这没有提供时间,所以只复制那些源文件时间比目标文件时间新的那些文件。

/y 直接覆盖,不询问。

参考资料

https://www.cnblogs.com/KevinJasmine/p/4159234.html

cmd copy命令 文件复制

xcopy 实现批处理拷贝文件或文件夹

你可能感兴趣的:(xcopy命令详解)