复制
将一个或多个文件从一个位置复制到其他位置。
语法
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模式下,特殊字符可能导致WindowsXP在复制过程中合并文件。有关详细信息,请参阅“合并文件”。
使用默认目标文件
如果不指定目标文件,将使用与源文件相同的名称、创建日期、创建时间来创建副本,并将新副本置于当前驱动器的当前目录中。如果源文件位于当前驱动器的当前目录中,而您没有为目标文件指定其他驱动器或目录,则copy命令将终止并显示下列错误消息:
Filecannotbecopiedontoitself
0File(s)copied
合并文件
如果指定了使用加号(+)分隔的多个source,copy会将这些文件合并在单个文件之中。如果在source中使用了通配符(*或?),但在destination中指定了单个文件名,则copy会将所有与source中的文件名匹配的文件合并,并使用在destination中指定的文件名来创建单个文件。除非使用了/b命令行选项,否则在任一种情形中,copy都会假定合并的文件是ASCII文件。
复制零长度文件
Copy不会复制0字节长度的文件。使用xcopy复制这些文件。
更改文件的时间和日期
如果要将当前的时间和日期指派给文件而不修改文件,请使用以下语法:
copy/bSource+,,
逗号表明省略了Destination参数。
在子目录中复制文件
要复制目录中的所有的文件和子目录,应该使用xcopy命令。有关xcopy的详细信息,请参阅“”。
故障恢复控制台提供了带有不同参数的copy命令。
范例
要将文件Memo.doc复制到当前目录中的Letter.doc,并确保在复制的文件的末尾为文件结束符,请键入:
copymemo.docletter.doc/a
要将文件Robin.typ从当前驱动器的当前目录复制到位于驱动器C上的现有目录Birds中,请键入:
copyrobin.typc:birds
如果Birds目录不存在,Robin.typ文件将被复制到驱动器C的磁盘根目录下名为Birds的文件中。
要将几个文件复制进一个文件,则需列出几个Source文件,并且文件名之间用加号(+)隔开,同时指定要包含合并结果文件的Destination文件。例如,要将位于当前驱动器的当前目录中的Mar89.rpt、Apr89.rpt以及May89.rpt合并,并将它们放在当前驱动器的当前目录下名为Report的文件中,请键入:
copymar89.rpt+apr89.rpt+may89.rptreport
合并文件时,copy会使用当前日期和时间来标记目标文件。如果省略Destination,则文件被合并并且会使用首个指定的文件的名称存储。例如,要将所有的四个文件合并进Report,而且已有名为Report的文件,请键入:
copyreport+mar89.rpt+apr89.rpt+may89.rpt
还可通过使用通配符(*或?)来将几个文件合并进一个文件。例如,在当前驱动器的当前目录中,要将所有具有.exe扩展名的文件合并进名为Combin.doc的文件中,请键入:
copy*.txtcombin.doc
如果要使用通配符将几个二进制文件合并进一个文件,请添加/b命令行选项。这可防止WindowsXP将CTRL+Z当作文件结束符处理。例如,键入:
copy/b*.execombin.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+*.refcombin.doc
XOX