无忧启动论坛

标题: xcopy命令部分用法总结 [打印本页]

作者: yjqd    时间: 2018-4-13 22:58
标题: xcopy命令部分用法总结
本帖最后由 yjqd 于 2018-4-13 23:02 编辑

在制作pe时,经常需要把文件拷贝到相应的目录中,手工或copy命令都太麻烦,用xcopy就容易多了,发贴以作备忘

目录:
一、xcopy在拷贝时具有建立文件夹的功能,和md类似
二、拷贝时提示 是文件名还是目录名
三、xcopy命令通配符的运用
四、xcopy参数的运用
五、应用举例

---------------------------------------------------------------------------------------------------------------------------
一、xcopy在拷贝时具有建立文件夹的功能,和md类似

md在D:\练习\BB中建立文件夹目录A\B\C
在BB文件夹中打开命令提示符,输入命令:

md A\B\C

也可以写全路径:

md D:\练习\BB\A\B\C

结果和前面一样,只会建立A\B\C文件夹目录

xcopy在拷贝时具有建立文件夹的功能,和md类似

不同点:

md建立文件夹时单双斜线都可以
md cc\kk\
md cc\kk\\

xcopy在拷贝时命令中的目标路径最后只能加单斜线,不能加双斜线

比如,目标实际路径D:\练习下没有CC文件夹
xcopy E:\AA\* D:\练习\CC\\

执行结果如下:

"文件创建错误 - 当文件已存在时,无法创建该文件。
无法创建目录 - D:\练习\CC\
复制了 0 个文件"

实际结果为创建了文件夹CC但没拷贝文件

目标实际路径D:\练习下没有CC文件夹时,情况和前面一样
---------------------------------------------------------------------------------------------------------------------------
二、拷贝时提示 是文件名还是目录名

xcopy E:\AA\AA.txt D:\练习\AA.txt

目标 D:\练习\AA.txt 是文件名
还是目录名
(F = 文件,D = 目录)?

xcopy E:\AA\AA.txt D:\练习\CC

目标 D:\练习\CC 是文件名
还是目录名
(F = 文件,D = 目录)?


上面示例中,目标是文件或是文件夹都出现了:目标 xxx 是文件名还是目录名的提示

原因:
目标实际路径中没有与命令中目标对应的文件AA.txt或文件夹CC

解决办法:

目标是文件时,按F键
执行结果,拷贝了AA.txt到D:\练习中

注意:
如果命令中目标文件名是通配符*或.,且实际目标路径和命令中目标路径相同时,则不会出现是文件名还是目录名的提示
xcopy E:\AA\AA.txt D:\练习\*
xcopy E:\AA\AA.txt D:\练习\.

如果实际目标路径和命令中目标路径不相同时,且命令中目标文件名是通配符.,会出现是文件名还是目录名的提示
实际目标路径为 D:\练习
命令中目标路径D:\练习\CC
xcopy E:\AA\AA.txt D:\练习\CC\.
目标 D:\练习\CC\. 是文件名
还是目录名
(F = 文件,D = 目录)?


目标是文件夹时,按D键
执行结果,创建了CC文件夹,并拷贝了AA.txt到CC文件夹

或者

在写命令时在CC后添加斜线,xcopy E:\AA\AA.txt D:\练习\CC\,就不会出现是文件名还是目录名的提示
xcopy会认为它是一个目录,因为如果CC是文件,那么后面不会再有下级目录,也就不能有斜线

或者
源文件名写成通配符*或.并且加参数 /i
xcopy /i E:\AA\* D:\练习\CC

---------------------------------------------------------------------------------------------------------------------------
三、xcopy命令通配符的运用

拷贝文件时:

源文件和目标文件名都为通配符*

xcopy E:\AA\* D:\练习\*

执行结果,拷贝所有的文件(不包括子目录及里面的文件),最好不用通配符.,原因参见二中关于通配符的内容
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
源文件用通配符*,目标文件为空

xcopy E:\AA\* D:\练习或xcopy E:\AA\* D:\练习\

执行结果,拷贝所有的文件(不包括子目录及里面的文件)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
拷贝文件夹时:

源是文件夹,目标是通配符*或.

xcopy E:\AA D:\练习\*或xcopy E:\AA D:\练习\.

执行结果,拷贝所有的文件(不包括子目录及里面的文件)

注意:
不能写成下面的命令,否则提示出错
xcopy E:\AA\ D:\练习\CC\
"无效路径
复制了 0 个文件"
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
---------------------------------------------------------------------------------------------------------------------------
四、xcopy参数的运用

参数 /i

源文件名写成通配符*或.并且加参数 /i
xcopy /i E:\AA\* D:\练习\CC
不会出现是文件名还是目录名提示,参见二中关于/i的内容


参数 /e

xcopy /e E:\AA\* D:\练习\CC\
xcopy /e E:\AA D:\练习\CC\
xcopy /e E:\AA\* D:\练习\AA\

xcopy /e E:\AA D:\练习\AA\
xcopy /e /i E:\AA D:\练习\AA

执行结果,拷贝所有的文件,包括子文件夹及里面的文件,也就是带目录结构拷贝
---------------------------------------------------------------------------------------------------------------------------
五、应用举例

1、把E:中的AA文件夹拷贝到D:\练习中,要求:D:\练习中出现AA文件夹,并且里面的内容包括目录结构都和E:中的AA文件夹一样

xcopy /e E:\AA D:\练习\AA\
xcopy /e /i E:\AA D:\练习\AA


2、有一份带有目录结构的文件名称列表,根据列表从C盘带目录结构拷贝文件到目标路径D:\练习\AA中

pe中的文件列表.txt,内容如下:

Windows\System32\config\SOFTWARE
Windows\System32\config\DEFAULT


for /f "delims=" %%a in ('type 文件夹列表.txt') do (echo f|xcopy /y /i /c /h /r c:\%%a D:\练习\AA\%%a)

发现没有,没有用参数 /e,也能带目录结构拷贝文件到目标路径,正是用了第一项中的原理,xcopy在拷贝时具有建立文件夹的功能
---------------------------------------------------------------------------------------------------------------------------
作者: whyme22    时间: 2018-4-14 09:34
有劳大师了
作者: 江南一根葱    时间: 2018-4-16 09:17
貌似现在用robocopy了
作者: yjqd    时间: 2018-4-17 08:12
江南一根葱 发表于 2018-4-16 09:17
貌似现在用robocopy了

哈哈,我前两天看关于pe部署的命令,正好也看到了robocopy,以前只关心dism、imgaex、bcdedit、reagentc等,没注意robocopy

测试了下拷贝近三天用过的.txt文件,还真方便




欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3