xcopy是一个相对复杂,同时又很强大的DOS指令,其功能是复制文件或文件夹,相当于copy的非常奥里给的扩展,其参数也相对较多,列表如下。
XCOPY src [dst] [/A | /M] [/D[:date]] [/P] [/S [/E]]
[/V][/W][/C][/I][/Q][/F][/L][/G][/H][/R][/T]
[/U][/K][/N][/O][/X][/Y][/Z][/B][/J]
[/EXCLUDE:file1[+file2][+file3]...][/压缩]
一般来说,复制单个文件的效果如下,会确认未加说明的目标,若选择文件名,则将a.txt复制为b.txt;若选择目录名,则会新建一个目录,并将a.txt复制到新建目录中。
>xcopy a.txt b.txt
目标 b.txt 是文件名
还是目录名
(F = 文件,D = 目录)? f
C:a.txt
复制了 1 个文件
>ls
a.txt b.txt
下面将指令分为简单、复杂和提示指令三类,依次介绍,并且用X开关表示/X这种指令。
开启I开关,如果目标不存在,且正在复制多个文件,则假定目标必须为目录;相应地/-I则假定目标为文件。指定这个开关之后,就不会有XXX是文件名还是目录名的提示了。
在复制时,会默认显示复制文件的路径,开启Q开关,可以取消这个显示;另一方面,若开启F开关,则显示完整的源文件名和目标文件名。
如果目标文件已经存在,那么会提示是否覆盖现有文件,通过开启Y开关,则取消这种提示,相应地/-Y表示开启提示。
此外,还有下面三种指令与提示有关。
/A和/M 在选中之后仅复制具有存档属性集的文件,区别在于A指令不更改属性,M指令则关闭存档属性。
/D:m-d-y 用于限定被复制的文件的日期,复制在指定日期或之后更改的文件。如果未给定日期,则仅复制那些源时间比目标时间新的文件。
[/S [/E]] 表示复制目录和子目录,若未选中/E,则忽略不包含文件的目录。
[/T [/E]] 表示仅创建目录结构,但不复制文件,若未选中/E,亦忽略不包含文件的目录。
/EXCLUDE:file1[+file2][+file3]… 顾名思义,复制过程中排除包含file1, file2, file3字符串的文件。
本所谓简单指令,指的是不带参数的指令,列表如下
其中,开启N开关,会把较长的文件名截断,示例如下
>xcopy asdfasdf.txt b /N
C:ASDFAS~1.TXT
复制了 1 个文件