中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-14 02:20
楼 主 求高手来看看能否实现 发表于 2007-06-09 16:19 ·  中国 江苏 无锡 江阴市 电信
初级用户
积分 28
发帖 12
注册 2007-06-02 16:46
UID 90058
性别 男
状态 离线
求DOS下用MD COPY 实现多文件夹。多文件COPY
。。
本人XP完全暴裂。
无光驱。软驱。家在大山。就一台电脑。所以不用考虑借挂别的机器。

现C盘下。。很多文件夹AND文件需要备份到D盘下。
由于文件和文件夹太多。高达8G。。文件夹多到2000多。文件多达3W多
都是学校里的DOC文档。。现在请各位高手帮忙
做个能简单点的COPY工具。
不要说用XCOPY。。我机器上没有XCOPY。我的系统是在装之前做了
FORMAT C:/S /Q
只能进DOS 用COPY程序。。。

拜托各位高手了。。。。。
2 发表于 2007-06-09 22:10 ·  中国 山东 济宁 兖州区 联通
钻石会员
★★★★★
积分 10,046
发帖 3,039
注册 2002-11-11 00:00
UID 223
性别 男
状态 离线
用ghost算了.
简单就是美
3 发表于 2007-06-09 22:32 ·  中国 江苏 无锡 江阴市 电信
初级用户
积分 28
发帖 12
注册 2007-06-02 16:46
UID 90058
性别 男
状态 离线
没有GHOST怎么GHOST。。。。。。。。
大哥。。拜托来点有见地的办法。
4 发表于 2007-06-10 19:26 ·  中国 山东 济宁 兖州区 联通
钻石会员
★★★★★
积分 10,046
发帖 3,039
注册 2002-11-11 00:00
UID 223
性别 男
状态 离线
那没办法了,仅凭几个dos内部命令,怎么做出新的dos工具来。
简单就是美
5 发表于 2007-06-11 14:18 ·  中国 广东 深圳 电信
初级用户
★★
积分 167
发帖 95
注册 2007-05-06 09:19
UID 87628
性别 男
状态 离线
假如你有一个文件 todel.txt,里面是所有要删除的文件列表,现在你想将里面列出的每个文件都删掉。假设这个文件是每个文件名占一行,象这样:

c:\temp\a1.txt
c:\temp\a2.txt
c:\temp\subdir\b3.txt
c:\temp\subdir\b4.txt

那么可以用FOR来完成:

for /f %a in (todel.txt) do del %a

这个命令还可以更强大。比如你的 todel.txt 并不是象上面例子那么干净,而是由DIR直接生成,有一些没用的信息,比如这样:

Volume in drive D is DATA
Volume Serial Number is C47C-9908
Directory of D:\tmp
09/26/2001 12:50 PM 18,426 alg0925.txt
12/02/2001 04:29 AM 795 bsample.txt
04/11/2002 04:18 AM 2,043 invitation.txt
4 File(s) 25,651 bytes
0 Dir(s) 4,060,700,672 bytes free

for 仍然可以解出其中的文件名并进行操作:

for /f "skip=5 tokens=5" %a in (todel.txt) do @if exist %a DEL %a

当然,上面这个命令是在进行删除,如果你只是想看看哪些文件将被操作,把DEL换成echo:

for /f "skip=5 tokens=5" %a in (todel.txt) do @if exist %a echo %a

你将看到:

alg0925.txt
bsample.txt
invitation.txt

skip=5表示跳过前5行(就是DIR输出的头部信息),tokens=5表示将每行的第5列作为循环值放入%a,正好是文件名。在这里我加了一个文件存在判断,是因为最后一行的"free"刚好也是第5列,目前还想不出好的办法来滤掉最后两行,所以检查一下可保万无一失。


看了上面的文章有这样的想法`~


首先把你要copy的文件名全都放在一个txt文本里边~~以每行一个文件~~完后执行下面的命令~


for /f %a in (todel.txt) do copy %a d:\
关于怎么在DOS里做成一个文本我可不太会了`~这有待高手的帮忙了`~
这只是我的个人想法``不知道行不行得通`~

[ Last edited by ldr2zjj on 2007-6-11 at 02:19 PM ]
6 发表于 2007-06-12 14:20 ·  中国 河北 石家庄 北京神州长城通信技术发展中心中国长城互联网
初级用户
★★
积分 152
发帖 75
注册 2007-02-06 22:09
UID 78805
性别 男
状态 离线
Originally posted by ldr2zjj at 2007-6-11 02:18 PM:


看了上面的文章有这样的想法`~


首先把你要copy的文件名全都放在一个txt文本里边~~以每行一个文件~~完后执行下面的命令~


for /f %a in (todel.txt ...

单纯的列出文件名可以用tree。但是完整路径不知道该怎么实现。
等待高手
7 发表于 2007-06-12 19:29 ·  中国 江苏 无锡 江阴市 电信
初级用户
积分 28
发帖 12
注册 2007-06-02 16:46
UID 90058
性别 男
状态 离线
可以用TREE >>1.txt
获取到整个盘的文件目录结构。
但这样怎么才能把他做成见到文件夹 后MD
见到文件直接COPY到改到的位置呢??
8 发表于 2007-06-12 20:00 ·  中国 山东 济宁 兖州区 联通
钻石会员
★★★★★
积分 10,046
发帖 3,039
注册 2002-11-11 00:00
UID 223
性别 男
状态 离线
tree? 你都format/s了, 哪来的tree?
简单就是美
9 发表于 2007-06-13 20:55 ·  中国 广东 佛山 电信
元老会员
★★★★
积分 5,170
发帖 1,637
注册 2002-10-16 00:00
UID 8
性别 男
来自 广东佛山
状态 离线
无光驱,无软驱,如果启动DOS?用U盘么?

如果有NC,VC等可以整个文件夹复制的,如果有RAR也可以,借用RAR的压缩和解压缩功能也可做到。

实在没有,用MD在D盘建好文件夹,然后copy *.* d:\XXXX 一次可复制一个文件夹内的全部文件(不包括子文件夹和隐藏文件)。
我的网志
http://hzmys.blog.163.com/
我的网盘
firststep.qjwm.com
fsmys.ys168.com
ssmys.ys168.com
www.brsbox.com/fsmys
www.brsbox.com/ssmys
www.brsbox.com/ccdos
论坛跳转: