中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-21 07:36
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 【已解决】只复制文件夹 不包括里面的内容 查看 3,049 回复 19
16 发表于 2009-04-07 02:30 ·  中国 福建 福州 电信
中级用户
★★
积分 356
发帖 115
注册 2004-07-27 00:00
21年会员
UID 29114
性别 男
状态 离线
回HAT版主。
XCOPY本就是带目录结构复制文件的。如楼主的系统有XCOPY,以编9楼代码的水平,应当直接用XCOPY。
其实,一是对楼主的提问方式不满,尤其“其实刚刚在其它论坛发贴过!”一句,好象有本坛非得跟其他论坛PK之嫌。二是想提示楼主,5楼yishanju已指出的XCOPY,本是最佳。
以我对本坛的认知,相信许多人都清楚,9楼代码虽有水准,但就楼主的问题而言,简单问题复杂化了。
17 发表于 2009-04-07 05:01 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
19年会员
UID 73968
性别 男
状态 离线
就9楼代码而言,我认为13楼给的建议非常好,但用xcopy直接实现我确实不知怎么办。楼主的要求是保留批处理当前目录的所有目录及子目录以及jpg、gif文件。
如何用xcopy只复制指定后缀的文件还请兄不吝赐教。
曾经尝试过用xcopy /t /e 来构建目录树,但发现如果目标目录也在批处理当前目录时会提示“不能执行周期性复制”的错误。
zpz0012005 兄曾给过一个 xcopy 的代码,但如果“目标目录”在“某文件夹具体路径”里时会提示“不能执行周期性复制”

@echo off
set src=某文件夹具体路径
set dst=目标目录
for %%a in (jpg gif) do xcopy /s/e/c "%src%\*.%%a" "%dst%\"


[ Last edited by 26933062 on 2009-4-7 at 05:32 ]
致精致简!
18 发表于 2009-04-07 11:33 ·  中国 福建 福州 电信
中级用户
★★
积分 356
发帖 115
注册 2004-07-27 00:00
21年会员
UID 29114
性别 男
状态 离线
@echo off
set src=源目录路径
set dst=目标目录
for %%a in (jpg gif) do xcopy /s/e/c "%src%\*.%%a" "%dst%\"

我的理解是,该批处理不在源目录下,生成的目标目录与批处理在同一目录。否则不必指定源目录具体路径,直接用.代替%src%即可。

如果该批处理在源目录下,会提示“不能执行周期性复制”的错误。因为被复制的源目录包含了目标目录。其实可以变通一下,把目标目录移到父目录下,与源目录并列:
@echo off
set dst=目标目录名
for %%a in (jpg gif) do xcopy /s/e/c ".\*.%%a" "..\%dst%\"

同理,如果批处理不在源目录下,希望生成的目标目录与源目录在一起:
@echo off
set src=源目录路径
set dst=目标目录
for %%a in (jpg gif) do xcopy /s/e/c "%src%\*.%%a" "%src%\..\%dst%\"

当然,如果源目录是根目录,用..肯定不行。其实9楼的代码现在也不适合在根目录下执行,不过他可以修改,加一个\。

一定要生成的目标目录在源目录下,9楼的代码可以,xcopy不可以。但我以为并不必要,复制本身就是从一个地方到另一个地方,不改变被复制的对象。xcopy不允许目标目录在源目录中,不是没有道理的。

楼主没有要求目标目录在源目录下,也没要求批处理在源目录下,复制的对象也不是根目录。依我的愚见,就两个xcopy就得了,文件类型多了再用for。

xcopy /s/e/c "c:\123\*.jpg" "d:\456\"
xcopy /s/e/c "c:\123\*.gif" "d:\456\"
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
26933062 +5 2009-04-07 11:48
19 发表于 2009-04-09 04:13 ·  中国 江西 南昌 电信
初级用户
积分 58
发帖 41
注册 2009-04-03 00:04
17年会员
UID 141951
性别 男
状态 离线
5楼写不不错
20 发表于 2009-04-10 00:10 ·  中国 江苏 南京 电信
新手上路
积分 14
发帖 10
注册 2009-03-20 01:38
17年会员
UID 141797
性别 男
状态 离线
DIR得到文件事夹,然后再创建文件不就行了嘛?
论坛跳转: