将一个或多个文件从一个位置复制到另一个位置。
Note
您还可以从恢复控制台使用具有不同参数的 copy 命令。 有关恢复控制台的详细信息,请参阅 Windows 恢复环境(Windows RE)。
Syntax
copy [/d] [/v] [/n] [/y | /-y] [/z] [/a | /b] <source> [/a | /b] [+<source> [/a | /b] [+ ...]] [<destination> [/a | /b]]
Parameters
| Parameter | Description |
|---|---|
| /d | 允许将复制的加密文件保存为目标上的解密文件。 |
| /v | 验证是否已正确写入新文件。 |
| /n | 复制名称长度超过 8 个字符或文件扩展名超过 3 个字符时,请使用短文件名(如果可用)。 |
| /y | 取消提示以确认要覆盖现有目标文件。 |
| /-y | 提示你确认是否要覆盖现有目标文件。 |
| /z | 以可重启模式复制网络文件。 |
| /a | 指示 ASCII 文本文件。 |
| /b | 指示二进制文件。 |
<source> |
Required. 指定要从中复制文件或文件集的位置。 源 可以由驱动器号和冒号、目录名、文件名或这些的组合组成。 |
<destination> |
Required. 指定要将文件或文件集复制到的位置。 目标可以 由驱动器号和冒号、目录名、文件名或这些的组合组成。 |
| /? | 在命令提示符下显示帮助。 |
Remarks
可以复制一个 ASCII 文本文件,该文件使用文件结束字符(CTRL+Z)来指示文件的末尾。
如果 /a 在命令行上的文件列表之前或之后,则它适用于列出的所有文件,直到 copy 遇到 /b。 在这种情况下, /b 适用于 /b 之前的文件。
/a 的效果取决于它在命令行字符串中的位置:- 如果 /a 跟在源后面,则复制命令将文件视为 ASCII 文件,并复制第一个文件末尾字符 (CTRL+Z) 之前的数据。 - 如果 /a 跟在 目标后面,则 复制 命令会添加文件末尾字符 (CTRL+Z) 作为文件的最后一个字符。
如果 /b 指示命令解释器读取目录中文件大小指定的字节数。 /b 是 copy 的默认值,除非 copy 合并文件。
如果 /b 在命令行上的文件列表之前或之后,则它将应用于所有列出的文件,直到 copy 遇到 /a。 在这种情况下, /a 适用于 /a 之前的文件。
/b 的效果取决于它在命令行字符串中的位置:- 如果 /b 跟在源后面,则复制命令将复制整个文件,包括任何文件末尾字符 (CTRL+Z) 。 - 如果 /b 跟在 目标后面,则 复制 命令不会添加文件结尾字符 (CTRL+Z) 。
如果无法验证写入作,将显示一条错误消息。 尽管 copy 命令很少发生记录错误,但您可以使用 /v 来验证关键数据是否已正确记录。 /v 命令行选项也会减慢复制命令的速度,因为必须检查磁盘上记录的每个扇区。
如果在 COPYCMD 环境变量中预设了 /y,则可以通过在命令行中使用 /-y 来覆盖此设置。 默认情况下,替换此设置时会提示您,除非 在 批处理脚本中执行复制命令。
要追加文件,请为 目标指定单个文件,但为 源 指定多个文件(使用通配符或 file1+file2+file3 格式)。
如果在复制阶段丢失连接(例如,如果服务器脱机中断连接),则可以使用 copy /z 在重新建立连接后恢复。 /z 选项还显示每个文件已完成的复制作的百分比。
您可以用设备名称替换一个或多个 源 或 目标。
如果 目标 是设备 (例如,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如果在 源中指定多个文件,则 复制 命令将使用 在目标中指定的文件名将它们全部合并为一个文件。 copy 命令假定组合文件是 ASCII 文件,除非使用 /b 选项。
要复制 0 字节长的文件,或复制目录的所有文件和子目录,请使用 xcopy 命令。
若要在不修改文件的情况下将当前时间和日期分配给文件,请使用以下语法:
copy /b <source> +,,其中逗号表示 目标 参数已被故意省略。
Examples
要将名为 memo.doc 的文件复制到当前驱动器中的 letter.doc ,并确保复制文件末尾有文件末尾字符 (CTRL+Z),请键入:
copy memo.doc letter.doc /a
要将名为 robin.typ 的文件从当前驱动器和目录复制到位于驱动器 C 上的名为 Birds 的现有目录,请键入:
copy robin.typ c:\birds
Note
如果 Birds 目录不存在,则文件 robin.typ 将复制到名为 Birds 的文件中,该文件位于驱动器 C 磁盘上的根目录中。
若要组合位于当前目录中的 Mar89.rpt、 Apr89.rpt 和 May89.rpt,并将它们放置在名为 Report 的文件中(也位于当前目录中),请键入:
copy mar89.rpt + apr89.rpt + may89.rpt Report
Note
如果合并文件,则 copy 命令会使用当前日期和时间标记目标文件。 如果省略 目标,则文件将合并并存储在列表中第一个文件的名称下。
要合并 “报表”中的所有文件,当名为 “报表” 的文件已存在时,请键入:
copy report + mar89.rpt + apr89.rpt + may89.rpt
要将当前目录中文件扩展名为 .txt 的所有文件合并到名为 Combined.doc 的单个文件中,请键入:
copy *.txt Combined.doc
若要使用通配符将多个二进制文件合并为一个文件,请包含 /b。 这可以防止 Windows 将 Ctrl+Z 视为文件末尾字符。 例如,键入:
copy /b *.exe Combined.exe
Caution
如果合并二进制文件,则由于内部格式设置,生成的文件可能不可用。
- 将具有 .txt 扩展名的每个文件与其相应的 .ref 文件组合在一起会创建具有相同文件名但扩展名为.doc的文件。 复制 命令 将 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