中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-04 09:04
48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 怎么实现同时运行5个子批处理哪?
可打印版本  816 / 9
第1楼 honghunter 发表于 2007-04-28 21:40
中级用户 发帖 135 积分 321
怎么实现同时运行5个子批处理哪?
我的问题是,在一个批处理里面,有没有什么办法把批处理的内容,保持同一个时间运行多个哪?
比如我的批处理类似下面的情况,我想要达到的效果是,始终有且最多只有5个子批处理(book*_getpage.bat)在运行。
当然,我问的是,怎么能自动化的由BAT控制,保持同一个时间,有5个子批处理被启动运行。

每个book*_getpage.bat就是一个不断调用wget来下载小说的批处理。假设算是一个线程把,这里假设我抓取小说的站点,同时5个线程抓取是安全的(也就是不会被屏蔽IP)。

……
第2楼 honghunter 发表于 2007-04-28 21:42
中级用户 发帖 135 积分 321
子批处理的内容类似下面这样:

第3楼 honghunter 发表于 2007-04-28 21:46
中级用户 发帖 135 积分 321
另外,说一下,算是一个经验教训吧。
以前我不知道有call命令,一直使用cmd /c来调用子批处理。
批量下载几个小时,cmd.exe就会报错退出,然后整个电脑的dos功能都失效,只能重新启动电脑……
第4楼 honghunter 发表于 2007-04-28 22:02
中级用户 发帖 135 积分 321
我现在想到的,是写个小程序,读入这一个BAT,然后输出成5个BAT,然后START这5个BAT。

但是这样需要另外写个小东西了。我想要知道有没有更加简便的实现方式。
第5楼 bjsh 发表于 2007-04-28 22:35
银牌会员 发帖 621 积分 2,000
别用call ;

直接start 五个;

然后
tasklist /fi "IMAGENAME eq cmd.exe" /nh |findstr /n .*
来监视cmd.exe的个数;
利用 ping -n 次数自定 127.1 延时再循环;知道cmd.exe减少一个 则start 下一个;

比如
start sub_batch.bat book10766_心伤奇侠录_getpage.bat
start sub_batch.bat book11658_不能终止的游戏_getpage.bat
start sub_batch.bat book13269_ 志末_getpage.bat
start sub_batch.bat book2081_ 幽灵人间_getpage.bat
start sub_batch.bat book21187_落 日 之 战_getpage.bat
延时循环监视 cmd.exe的数量 提示用 (for提取前面的数字.注意减1)
把剩下的那些bat 放到 text.txt中;
用循环每次 提取一个来start;
第6楼 honghunter 发表于 2007-04-28 22:52
中级用户 发帖 135 积分 321
谢谢您的回复。

下面两个功能如何实现,对我也是问题,我先搜索一下。
1,延时循环监视 cmd.exe的数量 提示用 (for提取前面的数字.注意减1)

2,把剩下的那些bat 放到 text.txt中;
用循环每次 提取一个来start;
第7楼 honghunter 发表于 2007-04-28 23:02
中级用户 发帖 135 积分 321
找到读取特定行了。

"小函数"读取文件指定的特定行(ReadLine2.bat)
http://www.cn-dos.net/forum/viewthread.php?tid=28671&fpage=1&highlight=%E8%AF%BB%E5%8F%96%E6%96%87%E4%BB%B6###
第8楼 bjsh 发表于 2007-04-28 23:23
银牌会员 发帖 621 积分 2,000
用不着这么复杂的;
比如test.txt内容如下

sub_batch.bat book28595_神剑传说_getpage.bat
sub_batch.bat book28676_因为爱,所以爱_getpage.bat
sub_batch.bat book28687_寒剑梦醒_getpage.bat
sub_batch.bat book28759_雪地阳天_getpage.bat
sub_batch.bat book28770_雪地阳天_getpage.bat
sub_batch.bat book28860_碧海幽燕_getpage.bat




里面涉及的数字;请自行测试修改.
第9楼 honghunter 发表于 2007-04-28 23:41
中级用户 发帖 135 积分 321
我写的确实比较复杂了。

而且我这样读行有个问题,不知道什么时候结束。 :(



[ Last edited by honghunter on 2007-4-28 at 10:45 AM ]
第10楼 honghunter 发表于 2007-04-28 23:57
中级用户 发帖 135 积分 321
再次谢谢bjsh版主。

[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023