dos文件(夹)复制命令:copy和xcopy

时间:2022-07-02 12:29:44

1.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 格式)。

示例:

1:要将文件Memo.doc复制到当前目录中的Letter.doc。 执行以下命令:copy memo.doc letter.doc 2:要将文件Memo.doc从当前驱动器的当前目录复制到位于驱动器C上的现有目录System中。 执行以下 命令:copy Memo.doc c:\system 如果System目录不存在,Memo.doc文件将被复制到驱动器C的磁盘根目录下名为System的文件中。 3:要将位于当前驱动器的当前目录中的Mar89.zip、Apr89.zip以及May89.zip合并,并将它们放在当前驱动器的当前目录下名为Report的文件中。 执行以下命令:copy mar89.zip + apr89.zip + may89.zip report 4:要将所有的四个文件合并进Report,而且已有名为Report的文件。 执行以下命令:copy report + mar89.rpt + apr89.rpt + may89.rpt 5:在当前驱动器的当前目录中,要将所有具有.txt扩展名的文件合并进名为Combin.doc的文件中。 执行以下命令:copy *.txt combin.doc 此时,打开Combin.doc文件,你会发现,该文件已将*.txt文件的所有内容合并为一篇文档。 6:COPY命令将每个带有.txt扩展名的文件和它对应的.ref文件合并起来。结果是文件名相同但扩展名为.doc的文件。COPY将File1.txt与File1.ref合并形成File1.doc,然后copy将File2.txt与File2.ref合并形File2.doc,如此等等。 执行以下命令:copy *.txt + *.ref *.doc 7:要合并所有具有.txt扩展名的文件,然后合并所有具有.ref扩展名的文件,并将合并结果置Combin.doc文件中. 执行以下命令:copy *.txt + *.ref combin.doc   2.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]
[/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 覆盖。

示例:

C:\>xcopy C:\ppt\*.* D:\ppt\ /s /e

这条命令的意思就是把C盘下的PPT文件夹全部拷贝到D盘

XCOPY 还有众多的功能, 是加参数来完成的。上面的/s /e 参数的作用分别是把子目录和空目录都复制过去,

如果路径中包含空格字符,会提示参数个数不对,只需要将路径放在双引号中即可。

如:xcopy "C:\Documents and Settings\administrator\My Documents" d:\back /e /s

 

参考资料:

1.cmd copy命令 文件复制 http://www.jb51.net/article/18981.htm

2.copy百度百科:http://baike.baidu.com/view/596598.htm

3.xcopy 实现批处理拷贝文件或文件夹 http://www.jb51.net/article/29055.htm

4.xopy百度百科:http://baike.baidu.com/view/893375.htm

 

注意:

使用xcopy命令,有可能出现“内存不足”的错误提示。

原因是设的目的路径太长(太深),将目的路径改为磁盘根目录或根目录下的一个目录就可以了。