![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-02 06:00 |
共 48,037 主题排行 / 350,122 发帖 / 今日 2 篇 / 48,250 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 如何批量复制文件下的指定文件?? |
| 可打印版本 2,013 / 9 |
| 第1楼 newstart | 发表于 2006-10-08 23:47 |
| 新手上路 发帖 4 积分 12 | |
|
如何批量复制文件下的指定文件?? 以前有过人问过这个问题。不过贴子上的东西没看太懂。
原贴(http://www.cn-dos.net/forum/viewthread.php?tid=20648) 我想问一下。 比如,我C盘下A文件夹里有10000个.txt文档, 文件名是a00001-a09999(都是.txt文档,不是文件夹) 而我有一个目录。约1000个,是我需要A里的文件, 比如他们是 C:\a\a00001.txt C:\a\a00602.txt C:\a\a00203.txt C:\a\a00007.txt 。。。 C:\a\a04203.txt C:\a\a04303.txt 等无规则的名字。 我想请问一下,如何把C:\a里面(再注,A里无子文件夹) 我想目录里的文档复制到别的文件夹下比如C:\b ? 我在网上搜索的结果是在DOS下运行如XCOPY的东西。但说的不太清楚。 请问有什么方法么?如果有请说的清楚,详细一些,谢谢。 或者发邮件到to7m8@126.com. thx! [ Last edited by newstart on 2006-10-9 at 05:50 ] |
|
| 第2楼 namejm | 发表于 2006-10-08 23:53 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
请说明你的DOS版本,比如是纯DOS还是windows下的CMD,若是纯DOS,那又是哪个版本。
另外,你说的是文件还是文件夹?a00001-a09999怎么看都像文件夹名啊。“他们的是a00003..a004234..a032043...等无规则的名字。",这样说来,这些文件的名和A下的文件名还是一样的么? |
|
| 第3楼 newstart | 发表于 2006-10-09 00:14 |
| 新手上路 发帖 4 积分 12 | |
|
1.DOS是xp下的cmd
2.a00001-a09999都是.txt的文档 3.而我需要的目录是是a00003..a004234..a032043...等无规则的名字,(都是文档名字) 4,我需要的是把目录中的1000个文档复制到另外的文件夹,如果根据目录找的话会相当的复杂。所以,特来请教!~!谢谢, |
|
| 第4楼 weilong888 | 发表于 2006-10-09 00:32 |
| 银牌会员 发帖 548 积分 1,270 | |
|
在CMD中先输入help xcopy
|
|
| 第5楼 namejm | 发表于 2006-10-09 00:35 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
Climbing大侠的代码写得已经够强悍了,如果换成我,我也会弄个类似的代码给你的,而你说看不太懂,那就没办法了。
给你提示一下:要用到for语句的扩展用法,提取文件名,用for %%i in () do echo %%~ni 的格式。 回过头来再看一下的描述,发现你是这样说的 “而我需要的目录是是a00003..a004234..a032043...等无规则的名字,(都是文档名字)”,a00003等究竟是文件还是文件夹,我又被你搞糊涂了,汗一个。 |
|
| 第6楼 jieok3375 | 发表于 2006-10-09 00:36 |
| 中级用户 发帖 130 积分 282 来自 广东 | |
|
楼主的问题讲的好像不太明白……
(偶滴理解能力差) |
|
| 第7楼 newstart | 发表于 2006-10-09 05:48 |
| 新手上路 发帖 4 积分 12 | |
|
namejm版主,我所说的目录就是存放文档(.txt)的地址的。
例如: C:\a\a00001.txt C:\a\a00002.txt C:\a\a00003.txt C:\a\a00007.txt C:\a\a04303.txt .. ... 很不幸,我的表达能力不够专业,让大家见笑了。 我C盘下A文件夹里有10000个.txt文档, 文件名是a00001.txt-a09999.txt(都是.txt文档,不是文件夹) 而我有一个目录。约1000个,是我需要A里的文件, 比如他们是 C:\a\a00001.txt C:\a\a00602.txt C:\a\a00203.txt C:\a\a00007.txt 。。。 C:\a\a04203.txt C:\a\a04303.txt 等无规则的名字。 我想请问一下,如何把C:\a里面(再注,A里无子文件夹) 我想目录里的文档复制到别的文件夹下比如C:\b ? 以下是我用Climbing大大写的来试, 结果提示我说"此时不应有 %%i @echo off ::C:\b set dst=C:\a for /F "tokens=*" %%i in (list.txt) do md %dst%%%~pi && copy /y %%i %dst%%%~pi && echo success copy %%i |
|
| 第8楼 namejm | 发表于 2006-10-09 11:43 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
楼主的问题已经属于CMD批处理的范围了,建议发往 DOS批处理 & 脚本技术(批处理室) 。
回答一下『第 7 楼』的部分问题: 1、climbing的代码不能在CMD命令窗口下运行,若要逐句运行的话,应该把所有的双百分号改成单百分号; 2、list.txt应该放在和这个批处理程序相同的目录下,或者放在任意目录下之后,把 (list.txt) 改成 (路径\list.txt) 的格式。 另外,我对你修改过后的描述还是有个关键的地方看不懂:"而我有一个目录。约1000个,是我需要A里的文件",1000个目录?吓人哦。看了你后面的举例,应该是说1000条记录吧?姑且按照我的理解,把你的问题理解成:c:\a下有10000个文本文件,而你只想复制其中的1000个,这1000个文件的绝对路径已经被你提取出来了,放在一个叫list.txt的文本中,现在想把这1000个文本文件复制到c:\b下。针对这个具体需求,我写了一段代码,请你测试: |
|
| 第9楼 lxmxn | 发表于 2006-10-09 12:26 |
| 版主 发帖 4,938 积分 11,386 | |
|
楼主还是没有把问题描述清楚,把版主都搞急了~~ 呵呵~~ 建议提问的时候,尽量把问题描述详细一点~~ |
|
| 第10楼 newstart | 发表于 2006-10-09 20:17 |
| 新手上路 发帖 4 积分 12 | |
|
感谢namejm大大在8楼的回答。
你已经明白了我的意思*_^ 我在cmd下。把你的程序改成一个% 结果。。。。。。。 。。。。。。。。。 。。。。。。。。哎。 终于成功了!!谢谢大家!:P:P:P [ Last edited by newstart on 2006-10-9 at 20:23 ] |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |