复制



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


语法



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 
	
当在命令行的文件列表之前有 /a 时，它适用于所有已列出的文件，直到 copy 遇到 /b。在这种情况下,/b 应用于文件前面的 /b。

 当 /a 在命令行上紧跟在文件列表之后时，它适用于所有已列出的文件，直到 copy 遇到 /b。在这种情况下,/b 应用于文件前面的 /b。

 /a 参数的作用取决于它在命令行字符串中的位置。当 /a 紧随 Source 之后时，copy 会将文件当作 ASCII（文本）文件，并复制第一个文件结束符前的数据。

当 /a 紧随 Destination 之后时，copy 会添加文件结束符作为文件的最后一个字符。
	
	 使用 /b
	
 /b 指定命令解释器读取目录中由文件大小指定的字节数。/b 是 copy 的默认值，除非 copy 用于合并文件。
	
当 /b 在命令行上位于文件列表之前时，它适用于所有已列出的文件，直到 copy 遇到 /a。在这种情况下，/a 应用于文件前面的 /a。

当 /b 在命令行上位于文件列表之后时，它适用于所有已列出的文件，直到 copy 遇到 /a。在这种情况下，/a 应用于文件前面的 /a。

 /b 的作用取决于它在命令行字符串中的位置。当 /b 紧随 Source 之后时，copy 复制包含任何文件结束符的整个文件。

 当 /b 紧随 Destination 之后时，copy 不会添加文件结束符。
	
	使用 /v
	
如果写入操作不能校验，则会出现错误消息。尽管使用 copy 很少发生记录错误，但是仍可以使用 /v 来确保重要的数据已正确记录。因为要检查驱动器上记录的每一个扇区，所以该 /v 命令行选项也会使 copy 命令的运行速度减慢。
	
	使用 /y 和 /-y
	
如果在 COPYCMD 环境变量中预先设置了 /y，可以通过在命令行使用 /-y 来替换该设置。默认情况下，在替换该设置时会提示您，除非该 copy 命令在批处理脚本中执行。
	
	附属文件

要附加文件，请为 Destination 指定单个文件，但要为 Source 指定多个文件（使用通配符或 文件 1+文件 2+文件 3 的格式）。
	
	 使用 /z
	
如果在复制阶段连接丢失（例如，如果服务器脱机切断了连接），copy /z 将在重新建立连接后继续复制。/z 同时会显示每个文件已完成的复制操作的百分比。
	
	复制到设备以及从设备复制
	
可以用设备名替换一次或多次出现的 source 或 destination。
	
	在复制到设备时使用或省略 /b
	
当 destination 是设备时（例如，Com1 或 Lpt1），/b 将以二进制模式将数据复制到该设备。在二进制模式下，copy /b 会将所有字符（包括特殊字符，例如， CTRL+C、CTRL+S、CTRL+Z 以及换行符等）作为数据复制到设备。但是，如果省略了 /b，则将以 ASCII 模式将数据复制到设备。在 ASCII 模式下，特殊字符可能导致 Windows XP 在复制过程中合并文件。有关详细信息，请参阅“合并文件”。
	
	使用默认目标文件
	
如果不指定目标文件，将使用与源文件相同的名称、创建日期、创建时间来创建副本，并将新副本置于当前驱动器的当前目录中。如果源文件位于当前驱动器的当前目录中，而您没有为目标文件指定其他驱动器或目录，则 copy 命令将终止并显示下列错误消息： 
File cannot be copied onto itself

0 File(s) copied 
	
	合并文件
	
如果指定了使用加号 (+) 分隔的多个 source，copy 会将这些文件合并在单个文件之中。如果在 source 中使用了通配符（* 或 ?），但在 destination 中指定了单个文件名，则 copy 会将所有与 source 中的文件名匹配的文件合并，并使用在 destination 中指定的文件名来创建单个文件。除非使用了 /b 命令行选项，否则在任一种情形中，copy 都会假定合并的文件是 ASCII 文件。
	
	复制零长度文件
	
Copy 不会复制 0 字节长度的文件。使用 xcopy 复制这些文件。
	
	更改文件的时间和日期
	
如果要将当前的时间和日期指派给文件而不修改文件，请使用以下语法： 

 copy /b Source+,,


逗号表明省略了 Destination 参数。

	
	在子目录中复制文件
	
要复制目录中的所有的文件和子目录，应该使用 xcopy 命令。有关 xcopy 的详细信息，请参阅“”。
 故障恢复控制台提供了带有不同参数的 copy 命令。
    


范例



 要将文件 Memo.doc 复制到当前目录中的 Letter.doc，并确保在复制的文件的末尾为文件结束符，请键入： 

 copy memo.doc letter.doc /a 

 要将文件 Robin.typ 从当前驱动器的当前目录复制到位于驱动器 C 上的现有目录 Birds 中，请键入： 

 copy robin.typ c:\birds 

 如果 Birds 目录不存在，Robin.typ 文件将被复制到驱动器 C 的磁盘根目录下名为 Birds 的文件中。

 要将几个文件复制进一个文件，则需列出几个 Source 文件，并且文件名之间用加号 (+) 隔开，同时指定要包含合并结果文件的 Destination 文件。例如，要将位于当前驱动器的当前目录中的 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 

 还可通过使用通配符（* 或 ?）来将几个文件合并进一个文件。例如，在当前驱动器的当前目录中，要将所有具有 .exe 扩展名的文件合并进名为 Combin.doc 的文件中，请键入： 

 copy *.txt combin.doc 

 如果要使用通配符将几个二进制文件合并进一个文件，请添加 /b 命令行选项。这可防止 Windows XP 将 CTRL+Z 当作文件结束符处理。例如，键入： 

 copy /b *.exe combin.exe 

警告
 如果合并二进制文件，结果文件可能因为内部格式而无法使用。

 在下例中，copy 命令将每个带有 .txt 扩展名的文件和它对应的 .ref 文件合并起来。结果是文件名相同但扩展名为 .doc 的文件。copy 将 File1.txt 与 File1.ref 合并形成 File1.doc,然后 copy 将 File2.txt 与 File2.ref 合并形成 File2.doc，如此等等。例如，键入：

 copy *.txt + *.ref *.doc 

要合并所有具有 .txt 扩展名的文件，然后合并所有具有 .ref 扩展名的文件，并将合并结果置于 Combin.doc 文件中，请键入： 

 copy *.txt + *.ref combin.doc 

XOX




 
