中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-11 15:57
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何实现xcopy只复制文件而不复制文件夹 查看 1,276 回复 9
楼 主 如何实现xcopy只复制文件而不复制文件夹 发表于 2009-04-08 09:10 ·  中国 北京 联通
新手上路
积分 3
发帖 3
注册 2009-03-17 12:01
17年会员
UID 141565
性别 男
状态 离线
想用xcopy复制一个文件夹下的同一扩展名的文件,但是文件夹下又包含了许多子文件夹,但是我不想要文件夹,只要文件即可,不知道如何实现!望高手帮忙指教,谢谢!
2 发表于 2009-04-08 09:13 ·  中国 北京 联通
银牌会员
★★★★
[b]看你妹啊[/b]
积分 1,488
发帖 1,357
注册 2006-05-20 12:00
20年会员
UID 55770
状态 离线
用COPY就可以了

有问题请发论坛或者自行搜索,再短消息问我的统统是SB
3 发表于 2009-04-08 09:27 ·  中国 北京 联通
新手上路
积分 3
发帖 3
注册 2009-03-17 12:01
17年会员
UID 141565
性别 男
状态 离线
Originally posted by yishanju at 2009-4-8 09:13:
用COPY就可以了

你的意思是copy 源文件 目标文件
这样好像不能复制源文件下的子文件夹下的文件....
实在不知道怎么弄
4 发表于 2009-04-08 22:04 ·  中国 四川 泸州 联通
高级用户
★★★
积分 609
发帖 374
注册 2006-08-02 22:38
20年会员
UID 59720
状态 离线
先 dir *.* /a /b /s
再用COPY
5 发表于 2009-04-08 23:02 ·  中国 辽宁 大连 联通
初级用户
积分 34
发帖 11
注册 2006-12-19 03:37
19年会员
UID 73911
性别 男
状态 离线
robocopy
6 发表于 2009-04-08 23:06 ·  中国 湖北 黄石 电信
中级用户
★★
积分 330
发帖 244
注册 2006-04-14 14:07
20年会员
UID 53823
性别 男
来自 湖北
状态 离线
Originally posted by dragonfu85 at 2009-4-8 09:10:
想用xcopy复制一个文件夹下的同一扩展名的文件,但是文件夹下又包含了许多子文件夹,但是我不想要文件夹,只要文件即可,不知道如何实现!望高手帮忙指教,谢谢!


不知下面的命令是否符合楼主的要求:
for /f "delims=" %i in ('dir/a/b/s “D:\musics\*.mp3”') do @copy "%~i" D:\mp3
把D:\musics目录下(包括子目录)所有mp3文件复制到d:\mp3目录下
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
dragonfu85 +1 2009-04-14 11:45
7 发表于 2009-04-14 11:45 ·  中国 北京 联通
新手上路
积分 3
发帖 3
注册 2009-03-17 12:01
17年会员
UID 141565
性别 男
状态 离线
Originally posted by freeants001 at 2009-4-8 23:06:


不知下面的命令是否符合楼主的要求:
for /f "delims=" %i in ('dir/a/b/s “D:\musics\*.mp3”') do @copy "%~i" D:\mp3
把D:\musics目录下(包括子目录 ...

其实已经找到方法了和你这个一样 原理同
就是不知道你这里的copy为什么要用@copy?
顺便问个,就是能否加上自动分析更新日期而选择性复制的功能
复制过的就不再复制,新的就复制
就好像xcopy命令中 /d的功能一样,可惜在这里用xcopy /d貌似不起作用
8 发表于 2009-04-14 22:43 ·  中国 湖北 黄石 电信
中级用户
★★
积分 330
发帖 244
注册 2006-04-14 14:07
20年会员
UID 53823
性别 男
来自 湖北
状态 离线
Originally posted by dragonfu85 at 2009-4-14 11:45:

就是不知道你这里的copy为什么要用@copy?
顺便问个,就是能否加上自动分析更新日期而选择性复制的功 ...



for /f  "delims=" %i in ('dir/a/b/s “D:\musics\*.mp3”') do @xcopy "%~i" D:\mp3 /d /y


把D:\musics目录下(包括子目录)所有mp3文件复制到d:\mp3目录下
只复制源时间比目标时间新的文件
@的作用是命令本身不回显
9 发表于 2009-04-15 01:09 ·  中国 四川 南充 电信
超级版主
★★★★
我爱DOS
积分 5,310
发帖 2,044
注册 2005-09-26 12:00
20年会员
UID 42843
性别 男
来自 四川南充
状态 离线
10 发表于 2009-04-15 02:13 ·  中国 江西 吉安 电信
初级用户
★★
积分 78
发帖 64
注册 2008-08-29 11:09
17年会员
UID 124464
性别 男
状态 离线
for /f "delims=" %i in ('dir/a/b/s “D:\musics\*.mp3”' do @xcopy "%~i" D:\mp3 /d /y
把D:\musics目录下(包括子目录)所有mp3文件复制到d:\mp3目录下
只复制源时间比目标时间新的文件
@的作用是命令本身不回显


只复制源时间比目标时间新的文件 "%~i" 因该是这个意思吧:~I - 删除任何引号(",扩充 %I

怎么会起到只复制源时间比目标时间新的文件呢 不甚起解,还请大大门解释一下


晕,没看见XCOPY后面跟了 /D /Y,

[ Last edited by THENEWLIFE on 2009-4-15 at 02:28 ]
论坛跳转: