复制命令(XCOPY)
XCOPY 命令:
// 描述:
将文件或目录(包括子目录)从一个位置复制到另一个位置。
// 语法:
Xcopy <Source> [<Destination>] [/w] [/p] [/c] [/v] [/q] [/f] [/l] [/g] [/d [:MM-DD-YYYY]][/u] [/i] [/s [/e]][/t]
[/k][/r] [/h] [{/a | /m}] [/n] [/o] [/x] [/exclude:FileName1[+[FileName2]][+[FileName3]] [{/y | /-y}] [/z] [/b] [/j]
// 参数:
/w: (Waiting)
在开始复制文件之前,显示以下消息并等待你的响应:
/p: (Prompt)
提示您确认是否要创建每个目标文件。
/c: (Clear error message)
忽略错误。
/v: (Verify)
在将每个文件写入目标文件时验证它们,以确保目标文件与源文件相同。
/q: (quiet)
禁止显示xcopy消息。
/f: (filsnames)
复制时显示源文件名和目标文件名。
/l: (lists)
显示要复制的文件列表。
/g: (decretyped)
目标不支持加密时创建解密的目标文件。
/d: (date)
复制仅在指定日期或之后更改的源文件。 如果未包含MM-DD-YYYY值,
则xcopy将复制比现有目标文件更新的所有源文件。
/u:
只复制已经存在于目标中的文件。
/i:
如果Source是目录或包含通配符且Destination不存在,则xcopy假定
Destination指定目录名称并创建新目录。 然后,xcopy复制所有
将指定的文件放入新目录中。 默认情况下,xcopy会提示您指定是否
目标是文件或目录。
/s: (subdirectories)
复制目录和子目录,除非它们是空的。 如果省略/ s,则xcopy有效在一个目录中。
/e: (empty files)
复制所有子目录,即使它们是空的。 使用/ e和/ s和/ t命令行选项。
/t: (tree structure)
仅复制子目录结构(即树),而不复制文件。要复制空目录,必须包含/ e命令行选项。
/k: (keep read-only attribute)
如果源文件中存在,则复制文件并保留目标文件上的只读属性。 默认情况下,xcopy删除只读属性。
/r: (read-only)
复制只读文件。
/h: (Hidden)
使用隐藏和系统文件属性复制文件。 默认情况下,xcopy不会复制隐藏文件或系统文件.
/o: (Owership)
复制文件所有权和自主访问控制列表(DACL)信息。
/x:
复制文件审核设置和系统访问控制列表(SACL)信息(隐含/ o)。
/y: (yes)
/z:
以可重新启动的模式通过网络复制。
// 注意事项:
–> 如果在复制阶段丢失连接(例如,如果服务器脱机会断开连接),则在重新建立连接后将恢复连接。 /z 还显示为每个文件完成的复制操作的百分比。
–> 可以在COPYCMD环境变量中使用/ y。 您可以在命令行上使用/ -y覆盖此命令。 默认情况下,除非您在批处理脚本中运行xcopy,否则系统会提示您进行覆盖。
–> 如果省略Destination,则xcopy命令会将文件复制到当前目录。
–> 如果Destination不包含现有目录且不以反斜杠()结尾,则会显示以下消息:
Does <Destination> specify a file name or directory name on the target(F = file, D = directory)?
如果要将文件复制到文件,请按F. 如果要将文件或文件复制到目录,请按D.
可以使用 /i 命令行选项来禁止此消息,这会导致xcopy假定如果源是多个文件或目录,则目标是目录。
–> 要处理xcopy返回的退出代码,请在批处理程序中的if命令行上使用ErrorLevel参数。
有关使用if处理退出代码的批处理程序的示例,请参阅其他引用。 下表列出了每个退出代码和说明。
code Description
—————————————————————————————-
0 文件被复制没有错误。
—————————————————————————————-
1 没有找到要复制的文件。
—————————————————————————————-
2 用户按下CTRL + C以终止xcopy。
—————————————————————————————-
4 发生初始化错误。 内存或磁盘空间不足,或者在命令行中输入
了无效的驱动器名称或无效语法。
—————————————————————————————-
5 发生磁盘写入错误。
—————————————————————————————-
// 实例:
// 复制在指定日期之后的文件
——————————————————–
C:\Users\Administrator\cmd\a>xcopy d:\Lofter\*.xls? /d:6-1-2018 /v /i /r /h /s /e
D:\Lofter\6月份耗材统计表.xls
D:\Lofter\6月对账单.xlsx
D:\Lofter\7月份耗材统计表.xls
D:\Lofter\电脑比价.xlsx
D:\Lofter\ExcelVBA\sort.xlsm
复制了 5 个文件
C:\Users\Administrator\cmd\a>dir *.xls?
驱动器 C 中的卷是 Windows10
卷的序列号是 0D7B-113B
C:\Users\Administrator\cmd\a 的目录
2018-06-26 16:50 18,432 6月份耗材统计表.xls
2018-06-01 11:48 10,788 6月对账单.xlsx
2018-07-26 10:29 30,720 7月份耗材统计表.xls
2018-07-10 17:38 9,740 电脑比价.xlsx
4 个文件 69,680 字节
0 个目录 19,065,155,584 可用字节
——————————————————–
// 复制远程主机上的共享文件夹的所有文件:
——————————————————–
C:\Users\Administrator\cmd>xcopy \\172.17.161.253\软件\2345\*.* /z /v
\\172.17.161.253\软件\2345\2345minipack.ini
\\172.17.161.253\软件\2345\p8_k15173065691_v2.0.exe
\\172.17.161.253\软件\2345\qqpcmgr_k15173065691_120458722.exe
复制了 3 个文件
——————————————————–
// 复制文件夹,包含空目录、隐藏文件、系统文件、只读文件。
——————————————————–
C:\Users\Administrator\cmd> tree d:\a /f
卷 软件 的文件夹 PATH 列表
卷序列号为 AE08-BAA0
D:\A
│ a.txt
│ b.txt
│
├─b
│ a.txt
│ b.txt
│
└─c
C:\Users\Administrator\cmd\a>xcopy /e /h /s /r /v d:\a
D:\a\a.txt
D:\a\b.txt
D:\a\b\a.txt
D:\a\b\b.txt
复制了 4 个文件
C:\Users\Administrator\cmd\a>tree /f
卷 Windows10 的文件夹 PATH 列表
卷序列号为 0D7B-113B
C:.
│ a.txt
│ b.txt
│
├─b
│ a.txt
│ b.txt
│
└─c
——————————————————–