![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-05 17:02 |
共 48,039 主题排行 / 350,124 发帖 / 今日 2 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » for按规定提取文本 |
| 可打印版本 942 / 14 |
| 第1楼 26933062 | 发表于 2007-09-01 09:23 |
| 银牌会员 发帖 879 积分 2,268 | |
|
for按规定提取文本 实在是不知道怎么写标题了,
各位若是没好答案,帮忙想想标题也行.呵呵... 言归正传 现有a.txt和b.txt文档,里面内容(即:行数)不确定. 要求建立c.txt内容是a.txt和b.txt的全部内容 并且规律如下 先是a.txt的头5行,再是b.txt的头5行,然后又是a.txt的5行.......依此类推......... 反正就是一个5行的来,直到其中一个没有了或不足5行,就把剩下的全部写入. 不知这样说,大家听明白没??? a.txt和b.txt的行数不一定是5的倍数哦. 如a.txt内容 1 2 3 4 5 11 12 13 14 15 21 22 b.txt内容 6 7 8 9 10 16 17 18 19 20 23 24 25 26 27 要求c.txt的内容是 从1---27 [ Last edited by 26933062 on 2007-9-1 at 09:25 AM ] |
|
| 第2楼 xxi | 发表于 2007-09-01 09:33 |
| 初级用户 发帖 24 积分 48 | |
|
请先考虑,for的运行机制
|
|
| 第3楼 ccwan | 发表于 2007-09-01 11:57 |
| 金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊 | |
|
Sample Text
[ Last edited by ccwan on 2007-9-1 at 02:11 PM ] |
|
| 第4楼 knoppix7 | 发表于 2007-09-01 13:26 |
| 银牌会员 发帖 634 积分 1,287 来自 cmd.exe | |
|
i didn't say anything
[ Last edited by knoppix7 on 2007-9-1 at 02:02 PM ] |
|
| 第5楼 slore | 发表于 2007-09-01 13:44 |
| 铂金会员 发帖 2,478 积分 5,212 | |
Originally posted by knoppix7 at 2007-9-1 13:26: a: b: 你的C和E结果都是type了罢了…… 你是按照1,2,3……那种数字算的吧?那你写到30看看问题就有了…… 他用数字是形容下。。。 |
|
| 第6楼 knoppix7 | 发表于 2007-09-01 13:58 |
| 银牌会员 发帖 634 积分 1,287 来自 cmd.exe | |
|
没弄懂LZ德意思。。。。。
当我什么都没说吧。 |
|
| 第7楼 26933062 | 发表于 2007-09-01 16:41 |
| 银牌会员 发帖 879 积分 2,268 | |
|
大家难道没看懂我的意思吗?
我的意思是 先读取a,txt的前5行,再读取b.txt的前5行 然后又读取a,txt的5行(即:第6-10行),再读取b.txt的5行(即:第6-10行) 再接着读取a.txt的5行(即:第11-15行),再读取b.txt的5行(即:第11-15行) 依此类推。。。 比如: 若a.txt的内容不足5行时,就有几行读几行,最后再把b.txt的内容全部读取。 若是b.txt的内容不足5行时,也是如此。 |
|
| 第8楼 ccwan | 发表于 2007-09-01 17:05 |
| 金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊 | |
|
我的代码有点复杂,所有想看看各位有什么好的解决方法。既然没人发言,我就抛砖吧。
[ Last edited by ccwan on 2007-9-1 at 05:07 PM ] |
|
| 第9楼 knoppix7 | 发表于 2007-09-01 17:09 |
| 银牌会员 发帖 634 积分 1,287 来自 cmd.exe | |
|
想了一下午,发现用的方法==LS的
|
|
| 第10楼 slore | 发表于 2007-09-01 17:14 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
:P
CC果然勤快…… 实现当然可以,不过我是懒人嗬一看就是不是简单几句能用P搞定的问题~支持,希望LZ的问题解决。 |
|
| 第11楼 knoppix7 | 发表于 2007-09-01 17:46 |
| 银牌会员 发帖 634 积分 1,287 来自 cmd.exe | |
|
用FOR循环。同时考虑用readline?
http://www.cn-dos.net/forum/viewthread.php?tid=28639&fpage=1 |
|
| 第12楼 slore | 发表于 2007-09-01 17:49 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
FOR循环调用的话……总运行代码不少……这个的文本固定了……
|
|
| 第13楼 1112yuhua | 发表于 2007-09-02 01:43 |
| 初级用户 发帖 44 积分 106 | |
|
把文本文件每五行分割成一个文件,再用copy合并,不知是否可行。
|
|
| 第14楼 26933062 | 发表于 2007-09-02 12:40 |
| 银牌会员 发帖 879 积分 2,268 | |
|
多谢 ccwan 的解答,代码可以正常运行,思路也非常好,佩服!!!
不过有一个地方不明白,可以麻烦再解释一下么? more/e +%num% ^<a.txt 这句中,为什么要^<符号?我试过取消它也可以正常运行,是不是取消以后 会在某种情况下出错? |
|
| 第15楼 ccwan | 发表于 2007-09-02 17:28 |
| 金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊 | |
Originally posted by 26933062 at 2007-9-2 12:40: 这是转义符号,你在命令行下使用没有它当然可以,但是在批处理中就要注意了。在in集合中是必须使用的。 至于不用<是可以的,只是这样用惯了 [ Last edited by ccwan on 2007-9-2 at 05:33 PM ] |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |