cmd 复制文件命令copy 复制目录树命令xcopy
如何cmd命令帮助文档
在命令后面输入 /?
即可查看帮助文档,注意斜杠前面有个空格。
copy命令
先来查看copy命令的帮助文档:copy /?
:
1 | C:\Users\lan>copy /? |
可以看到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:\test©"
合并文件
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 /?
:
1 | C:\Users\lan>xcopy /? |
xcopy实例
只复制更新过的文件
在备份的时候,源目录中有些文件更新过,有些文件没更新过。我们只需要复制更新过的文件即可,没必要一股脑复制(覆盖)。
例如:
1 | xcopy E:\Blog\blog5\source\_posts E:\Blog\blog5MD /e /Y /d |
就是把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 直接覆盖,不询问。
参考资料
https://www.cnblogs.com/KevinJasmine/p/4159234.html
cmd copy命令 文件复制
xcopy 实现批处理拷贝文件或文件夹