中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-06 13:42
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 关于xcopy命令的一小问题 查看 823 回复 11
楼 主 关于xcopy命令的一小问题 发表于 2007-11-19 15:39 ·  新加坡 Verizon通讯公司UUNet互联点
初级用户
积分 110
发帖 44
注册 2007-11-01 21:56
18年会员
UID 101435
性别 男
状态 离线
执行 xcopy -Y C:\a\b\c.def D:\a\b\c.def
时候,总是提示我

c:\a\b\c.def specify a file name
or directory name on the target
(F = file, D = directory)? f

这样就阻止了我的自动化

D:盘什么都没有,我只是想把c盘的都拷贝过去。。。
用copy也不行,因为d盘没有相应的目录结构。。。郁闷
2 发表于 2007-11-19 16:31 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
不懂某个命令时,就在命令行输入命令名称加上/?来看看它的帮助。。。
xcopy /?
xcopy /Y /I C:\a\b\c.def D:\a\b\c.def
3 发表于 2007-11-19 17:04 ·  中国 江苏 苏州 移动
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
18年会员
UID 99089
性别 男
状态 离线
XCOPY 是拷贝文件夹.和有树目录结构的文件
COPY 只能拷贝文件.比如 .EXE .TXT .BMP 之类的文件
LZ的问题中, .def应该是一个文件,所以在拷贝时应该用 COPY C:a\b\c.def D:\
意思是说将C盘下A文件夹下的B文件夹下的c.def文件拷贝到 D盘下!
如果我猜的没错的话LZ上面的目录机构一定是自己为了方便提问,随便写的,因为与你下面的问题不符合,如果你想拷贝C盘下的文件比如说有个"HEHE"的文件夹,那应该这样
XCOPY C:\HEHE D:\
4 发表于 2007-11-19 17:22 ·  新加坡 Verizon通讯公司UUNet互联点
初级用户
积分 110
发帖 44
注册 2007-11-01 21:56
18年会员
UID 101435
性别 男
状态 离线
/I If destination does not exist and copying more than one file,
assumes that destination must be a directory.

按他的解释,是不符合我的要求的。。。
因为我要copy 的是文件d.def..但xcopy 并不知道它是否是文件。。。我就很奇怪了。。。
5 发表于 2007-11-19 17:24 ·  新加坡 Verizon通讯公司UUNet互联点
初级用户
积分 110
发帖 44
注册 2007-11-01 21:56
18年会员
UID 101435
性别 男
状态 离线
当然你说 xcopy -Y C:\a\b\c.def D:\a\b 这样不是可以嘛,应该是可以。。但我用perl写的脚本,还要去除destination 后面的c.def文件 这样修改在我的程序中是 不容易做到的。。。
6 发表于 2007-11-19 17:26 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
把你的Perl脚本发上来看看?
7 发表于 2007-11-19 17:29 ·  新加坡 Verizon通讯公司UUNet互联点
初级用户
积分 110
发帖 44
注册 2007-11-01 21:56
18年会员
UID 101435
性别 男
状态 离线
赫赫,我知道就会这么说:) 不看我的perl脚本,有没有办法能解决我的问题呀:)先谢谢了
8 发表于 2007-11-19 17:29 ·  新加坡 Verizon通讯公司UUNet互联点
初级用户
积分 110
发帖 44
注册 2007-11-01 21:56
18年会员
UID 101435
性别 男
状态 离线
不用xcopy 也可以 robocopy 能行吗?
9 发表于 2007-11-19 17:36 ·  中国 江苏 苏州 移动
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
18年会员
UID 99089
性别 男
状态 离线
因为我要copy 的是文件d.def..但xcopy 并不知道它是否是文件。。。我就很奇怪了。。。
此话怎么讲??
既然你说d.def是文件,也就带有后缀的,那就的用COPY
如果一个文件夹的名字是d.def,COPY就无效了
10 发表于 2007-11-19 17:41 ·  新加坡 Verizon通讯公司UUNet互联点
初级用户
积分 110
发帖 44
注册 2007-11-01 21:56
18年会员
UID 101435
性别 男
状态 离线
关键,我要在 目的地建立一样的 目录结构
除非我先 mkdir D:\a\b\ 然后copy C:\a\b\c.def D:\a\b\c.def 这样是可以的
11 发表于 2007-11-19 18:15 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
system("xcopy /I /Y C:\a\b\c.def D:\a\b\c.def ")
12 发表于 2007-11-19 19:53 ·  新加坡 Verizon通讯公司UUNet互联点
初级用户
积分 110
发帖 44
注册 2007-11-01 21:56
18年会员
UID 101435
性别 男
状态 离线
你这个事不对的

至少把\改成\\
我这边的实验结果很奇怪

system("xcopy /Y /I C:\\Iork\\extin\\or\\op\\bal\\sc\\ng\\Ag\\AdIse.def C:\\Iork\\extin\\or\\xxxx_op\\bal\\sc\\ng\\Ag\\");
这样运行,报错,说找不到文件


但我粘贴到Dzperl编辑器运行 就能找到文件!

console下运行也报文件找不到 0 file copied..

郁闷
论坛跳转: