xcopy 复制文件和目录树
命令用法:
XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W]......
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 覆盖。
在你的命令后加一个 /Y 禁止提示以确认覆盖一个现存目标文件。复制文件和目录树。注意: Xcopy 现已被否决,请使用 Robocopy。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 复制符号链接本身和链接目标。开关 /Y 可以预先在 COPYCMD 环境变量中设置。这可能被命令行上的 /-Y 覆盖。
xcopy是用来复制文件和目录树,下面是这个复制指令的详细解释和参数,你可以参考以后用来编写你的批处理文件。
XCOPY 源 [目标] [/A | /M] [/D[:d ate]] [/P] [/S [/E]] [/V] [/W]
[/C][/I][/Q][/F][/L][/G][/H][/R][/T][/U]
[/K][/N][/O][/X][/Y][/-Y][/Z][/B][/J]
[/排除:file1[+file2][+file3]...][/压缩]
源 指定要复制的文件。
目标 指定新文件的位置和/或名称。
/A 仅复制具有存档属性集的文件,
不更改属性。
/M 仅复制具有存档属性集的文件,
关闭存档属性。
/D:m-d-y 复制在指定日期或之后更改的文件。
如果未给定日期,则仅复制那些
源时间比目标时间新的文件。
/排除:file1[+file2][+file3]...
指定包含字符串的文件列表。 每个字符串
应位于文件的单独行中。 当任意
字符串与要复制的文件的绝对路径的任意部分
匹配时,将从复制中排除该文件。 例
如,指定 \obj\ 或 .obj 等字符串将排除
目录 obj 下的所有文件或所有具有
.obj 扩展名的文件。
/P 创建每个目标文件之前会提示你。
/S 复制除空目录和空子目录之外的目录和子目录。
/E 复制目录和子目录,包括空目录和空子目录。
与 /S /E 相同。可用于修改 /T。
/V 验证每个新文件的大小。
/W 提示你在复制前按键。
/C 即使出现错误也继续复制。
/I 如果目标不存在,且正在复制多个文件,
则假定目标必须为目录。
/-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 进行复制。建议用于非常大的文件。
/压缩 文件传输期间请求网络压缩(如果
适用)。
/稀疏 在复制稀疏文件时保留稀疏状态。
可以在 COPYCMD 环境变量中预设开关 /Y。
这可能在命令行上被替代为 /-Y。
参考: 参考链接
如何cmd命令帮助文档
在命令后面输入/?即可查看帮助文档,注意斜杠前面有个空格。
copy命令
先来查看copy命令的帮助文档:copy /?:
C:\Users\lancopy /?
将一份或多份文件复制到另一个位置。
命令行开关 /Y 可以在 COPYCMD 环境变量中预先设定。
这可能会被命令行上的 /-Y 替代。除非 COPY
命令是在一个批处理脚本中执行的,默认值应为
在覆盖时进行提示。
要附加文件,请为目标指定一个文件,为源指定
数个文件(用通配符或 file1+file2+file3 格式)。
可以看到copy命令是用来复制文件的。
实例
直接覆盖同名文件
如果D盘根目录下已经存在了一个名为test.txt的文件,那么,复制过去的时候,copy命令就会提示你是覆盖原文件、是放弃复制还是覆盖所有文件。如果你在批量复制的时候,一概覆盖原文件,那么,一个一个地选择十分麻烦,这个时候,你可以使用不加提示就覆盖原文件的参数 /y (相当于自动选择了Yes选项),完整的命令为:copy /y d:\test\test.txt d:\testcopy
复制改名
如果复制的时候,你还需要把源文件改个名,比如把test.txt改为1.txt的时候,可以直接使用:copy d:\test\test.txt d:\testcopy\1.txt 这样的命令,也就是说, 在指定目的路径的时候,直接指定文件名,那么,新的文件名就是源文件复制之后的名字 。
路径中带空格等特殊符号
如果要复制的路径带有空格、等特殊符号的时候,请使用引号把这些特殊字符括起来,比如:copy "d:\test abc\test.txt" "d:\testcopy"
合并文件
copy命令除了“复制”文件的功能外,还有一个绝活:合并多个文件为一个文件,具体的格式为:
copy 文件1+文件2+文件3+…… 目的路径\新文件名 。例如:copy d:\test.txt+d:\abc.txt d:\test\test.txt,那么,就把D盘根目录下的test.txt和abc.txt两个文件的内容合并为test.txt,并保存到d:\test目录下。
必须注意的是,copy只能复制文件,对于文件夹的复制,则需要另请高明,动用xcopy来复制。xcopy是copy的高级版本,有更丰富的参数,能实现更加复杂的功能,通吃文件和文件夹的复制。
xcopy命令
还是先查看帮助文档,xcopy /?:
C:\Users\lanxcopy /?
复制文件和目录树。
开关 /Y 可以预先在 COPYCMD 环境变量中设置。
这可能被命令行上的 /-Y 覆盖。
xcopy实例
只复制更新过的文件
在备份的时候,源目录中有些文件更新过,有些文件没更新过。我们只需要复制更新过的文件即可,没必要一股脑复制(覆盖)。
例如:
xcopy E:\Blog\blog5\source\_posts E:\Blog\blog5MD /e /Y /d
1
就是把E:\Blog\blog5\source\_posts这个下的子目录树,复制到E:\Blog\blog5M中,
参数描述:
/e 参数表示,复制E:\Blog\blog5\source\_posts下面的目录和子目录,包括空目录
/y参数表示,如果目标目录下有同名文件了,不询问,就直接覆盖。
/d对应同名文件,只复制那些源文件时间比目标文件时间新的那些文件。这样可以节省复制的操作。就不会全部一股脑的复制(覆盖)。
复制隐藏文件
如只是单纯地复制一个目录内的所有文件到另一个目录中上,就输入xcopy 源目录 目的目录 /s /h,如果复制到一半你发现不对劲,可以按键盘热键“Ctrl " +“Pause /break” 二个热键 来中断复制。
/s 表示复制目录或子目录
/h 表示复制隐藏文件,系统文件
例如xcopy E:\Blog\blog5\source\_posts\java* E:\Blog\blog5Test /s /h
从中断处继续复制
如果想把E:\ 盘上所有文件复制到D:\盘上,分为今天复制一点,明天再接着复制一些,后天再接着复制一些。或者是某种原因上次没有复制完成,今天想接着复制。(这种情况是经常在复制文件中出现的)那可怎么办才好呢?
那就输入 xcopy 源目录 目标目录 /s /h /d /y就行啦。他能查出那些文件是已经复制过去啦,那些文件还没有复制过去的。
/s 复制目录和子目录,不复制空目录
/h 复制隐藏文件以及系统文件
/d 这没有提供时间,所以只复制那些源文件时间比目标文件时间新的那些文件。
/y 直接覆盖,不询问。
参考资料
cmd copy命令 文件复制
xcopy 实现批处理拷贝文件或文件夹
首先,了解下xcopy命令的帮助文件。执行命令:
xcopy /?
来查看帮助文件。
xcopy相比copy命令,特色功能就是可以拷贝目录。
主要是下图的这几个参数:
例如,当前测试环境为目录“D:\test”下面有两个文件夹1和2,文件夹1下面有1.txt和目录11,文件夹2下面有2.txt和目录22。
现在,要把目录“D:\test”下面的文件夹1下面的所有文件和文件夹都拷贝到文件夹2下面,那么执行命令:
xcopy D:\test\1 D:\test\2\ /E
接下来,看看文件夹2下面有什么东西,发现文件夹1下面的东西,包括文件夹都拷贝过来了!
然后,我们把现场还原一下:删除文件夹2下面的11目录和1.txt文件。
然后再执行命令:
xcopy D:\test\1 D:\test\2\ /S
接着,再来看看文件夹2下面有什么东西,发现1.txt文件拷贝过来,但是11这个文件夹并么有拷贝过来。
这就是/S和/E参数的区别,因为11文件夹是属于空文件夹,/S参数表示不拷贝空文件夹。
最后说明下,如果要拷贝的源文件中包含系统文件或者隐藏文件,那么xcopy也可以拷贝,需要添加/H参数。
总之,xcopy的功能非常强大,可以做很多事,大家有空可以研究研究。
本文转载自互联网,如有侵权,联系删除