copy

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

注意

还可以从恢复控制台结合不同的参数使用 copy 命令。 有关恢复控制台的详细信息,请参阅 Windows 恢复环境 (Windows RE)

语法

copy [/d] [/v] [/n] [/y | /-y] [/z] [/a | /b] <source> [/a | /b] [+<source> [/a | /b] [+ ...]] [<destination> [/a | /b]]

参数

参数 说明
/d 允许将复制的加密文件作为解密文件保存到目标。
/v 验证是否已正确写入新文件。
/n 在复制名称超过八个字符或文件扩展名超过三个字符的文件时使用短文件名(如果可用)。
/y 禁止提示你确认覆盖现有目标文件。
/-y 提示你确认覆盖现有目标文件。
/z 以可重启模式复制网络文件。
/a 指示 ASCII 文本文件。
/b 指示二进制文件。
<source> 必需。 指定要从中复制一个文件或一组文件的位置。 source 可以由驱动器号后跟分号、目录名称、文件名或是这几项的组合组成。
<destination> 必需。 指定要将一个文件或一组文件复制到的位置。 destination 可以由驱动器号后跟分号、目录名称、文件名或是这几项的组合组成。
/? 在命令提示符下显示帮助。

注解

  • 可以复制使用文件结束字符 (CTRL+Z) 指示文件结束的 ASCII 文本文件。

  • 如果在命令行中的文件列表前面或后面添加 /a,该选项将应用于列出的所有文件,直到 copy 遇到 /b。 在这种情况下,/b 应用 /b 前面的文件

    /a 的效果取决于它在命令行字符串中的位置:- 如果 /a 跟在 source 后面,则 copy 命令会将文件视为 ASCII 文件并复制第一个文件结束字符 (CTRL+Z) 前面的数据。 - 如果 /a 跟在 destination 后面,则 copy 命令会添加一个文件结束符 (CTRL+Z) 作为文件的最后一个字符

  • 如果 /b 指示命令解释器读取目录中文件大小指定的字节数。 除非 copy 合并文件,否则 /b 是 copy 的默认值

  • 如果在命令行中的文件列表前面或后面添加 /b,该选项将应用于列出的所有文件,直到 copy 遇到 /a。 在这种情况下,/a 应用 /a 前面的文件

    /b 的效果取决于它在命令行字符串中的位置:- 如果 /b 跟在 source 后面,则 copy 命令会复制整个文件,包括任何文件结束字符 (CTRL+Z)。 - 如果 /b 跟在 destination 后面,则 copy 命令不会添加文件结束字符 (CTRL+Z)

  • 如果无法验证写入操作,将显示错误消息。 可以使用 /v 来验证是否已正确记录关键数据,不过,copy 命令很少发生记录错误。 /v 命令行选项还会减慢 copy 命令的速度,因为使用此选项时,必须检查磁盘上记录的每个扇区

  • 如果在 COPYCMD 环境变量中预设了 /y,你可以在命令行中使用 /-y 替代此设置。 默认情况下,除非在批处理脚本中执行 copy 命令,否则在替换此设置时会出现提示

  • 若要追加文件,请为 destination 指定一个文件,但为 source 指定多个文件(使用通配符或 file1+file2+file3 格式)

  • 如果在复制阶段断开连接(例如,如果服务器脱机,则会断开连接),可以在重新建立连接后使用 copy /z 予以恢复。 /z 选项还会显示针对每个文件的复制操作的完成百分比

  • 可以将出现的一个或多个 source 或 destination 替换为设备名称

  • 如果 destination 是设备(例如 Com1 或 Lpt1),则 /b 选项以二进制模式将数据复制到设备。 在二进制模式下,copy /b 会将所有字符(包括 CTRL+C、CTRL+S、CTRL+Z 和 ENTER 等特殊字符)作为数据复制到设备。 但是,如果省略 /b,则会在 ASCII 模式下将数据复制到设备。 在 ASCII 模式下,特殊字符可能会导致文件在复制过程中合并。

  • 如果未指定目标文件,则会创建名称、修改日期和修改时间与原始文件相同的副本。 新副本存储在当前驱动器上的当前目录中。 如果源文件位于当前驱动器和当前目录中,并且你未为目标文件指定不同的驱动器或目录,则 copy 命令会停止并显示以下错误消息

    File cannot be copied onto itself
    0 File(s) copied
    
  • 如果在 source 中指定了多个文件,则 copy 命令会使用在 destination 中指定的文件名将这些文件全部合并到单个文件。 除非使用 /b 选项,否则 copy 命令假设合并的文件是 ASCII 文件

  • 若要复制长度为 0 字节的文件,或要复制某个目录的所有文件和子目录,请使用 xcopy 命令

  • 若要在不修改文件的情况下将当前时间和日期分配到文件,请使用以下语法:

    copy /b <source> +,,
    

    其中,逗号指示有意省略了 destination 参数

示例

若要将名为 memo.doc 的文件复制到当前驱动器中的 letter.doc,并确保文件结束字符 (CTRL+Z) 位于复制的文件的末尾,请键入

copy memo.doc letter.doc /a

若要将名为 robin.typ 的文件从当前驱动器和目录复制到驱动器 C 上名为 Birds 的现有目录,请键入

copy robin.typ c:\birds

注意

如果 Birds 目录不存在,则会将文件 robin.typ 复制到名为 Birds 的文件中,该文件位于磁盘驱动器 C 上的根目录中

若要合并当前目录中的 Mar89.rpt、Apr89.rpt 和 May89.rpt,并将其放入名为 Report 的文件(也在当前目录中),请键入

copy mar89.rpt + apr89.rpt + may89.rpt Report

注意

如果合并文件,copy 命令会使用当前日期和时间标记目标文件。 如果省略 destination,将使用列表中第一个文件的名称合并和存储文件

若要合并 Report 中的所有文件,当名为 Report 的文件已存在时,请键入

copy report + mar89.rpt + apr89.rpt + may89.rpt

若要将当前目录中所有文件扩展名为 .txt 的文件合并到名为 Combined.doc 的单个文件,请键入

copy *.txt Combined.doc

若要使用通配符将多个二进制文件合并为一个文件,请包含 /b。 这可以防止 Windows 将 CTRL+Z 视为文件结束字符。 例如,键入:

copy /b *.exe Combined.exe

注意

如果合并二进制文件,生成的文件可能因内部格式问题而无法使用。

  • 将扩展名为 .txt 的每个文件与其相应 .ref 文件合并会创建文件名相同,但扩展名为 .doc 的文件。 Copy 命令将 file1.txt 与 file1.ref 合并成 file1.doc,然后该命令将 file2.txt 与 file2.ref 合并成 file2.doc,依此类推。 例如,键入:
copy *.txt + *.ref *.doc

若要合并扩展名为 .txt 的所有文件,然后将扩展名为 .ref 的所有文件合并为一个名为 Combined.doc 的文件,请键入

copy *.txt + *.ref Combined.doc