中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-26 12:08
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如果实现运行A.bat调用B.bat完成后再运行C.bat 查看 2,331 回复 18
楼 主 如果实现运行A.bat调用B.bat完成后再运行C.bat 发表于 2007-03-20 05:19 ·  IANA 局域网IP(Private-Use)
初级用户
积分 30
发帖 13
注册 2007-03-14 00:28
19年会员
UID 81631
性别 男
状态 离线
现有三个bat文件,A、B、C。
A的里面有运行B C的功能。
想实现下面的功能:
运行A.bat Call B.bat B.bat运行成功 再运行 C.bat


总之就是 按照 A、B、C 的顺序运行,不能B.bat没运行完,C.bat就运行了


PS:DOS里有睡眠的概念吗?

[ Last edited by ivanisme on 2007-3-20 at 09:16 AM ]
2 发表于 2007-03-20 06:02 ·  中国 辽宁 朝阳 联通
铂金会员
★★★★
痴迷DOS者
积分 5,798
发帖 1,924
注册 2003-06-20 00:00
23年会员
UID 5583
性别 男
来自 金獅電腦軟體工作室
状态 离线
知道也不回答你,你注册的时候没有好好看看论坛新手必读那个帖子吗?
熟能生巧,巧能生精,一艺不精,终生无成,精亦求精,始有所成,臻于完美,永无止境!
金狮電腦軟體工作室愿竭诚为您服务!
QQ群:8393170(定期清理不发言者)
个人网站:http://www.520269.cn
电子邮件:doujiehui@vip.qq.com
微信公众号: doujiehui
3 发表于 2007-03-20 06:15 ·  IANA 局域网IP(Private-Use)
初级用户
积分 30
发帖 13
注册 2007-03-14 00:28
19年会员
UID 81631
性别 男
状态 离线
我吐血呀
4 发表于 2007-03-20 06:17 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
19年会员
UID 59080
状态 离线

  A.bat里面的代码就一句:call B.bat&&call C.bat;

  兄说的睡眠是延时的意思么?
5 建议楼主将主题改为以下: 发表于 2007-03-20 06:26 ·  中国 辽宁 朝阳 联通
铂金会员
★★★★
痴迷DOS者
积分 5,798
发帖 1,924
注册 2003-06-20 00:00
23年会员
UID 5583
性别 男
来自 金獅電腦軟體工作室
状态 离线
如果实现运行A.bat调用B.bat完成后再运行C.bat
熟能生巧,巧能生精,一艺不精,终生无成,精亦求精,始有所成,臻于完美,永无止境!
金狮電腦軟體工作室愿竭诚为您服务!
QQ群:8393170(定期清理不发言者)
个人网站:http://www.520269.cn
电子邮件:doujiehui@vip.qq.com
微信公众号: doujiehui
6 发表于 2007-03-20 07:38 ·  IANA 局域网IP(Private-Use)
初级用户
积分 30
发帖 13
注册 2007-03-14 00:28
19年会员
UID 81631
性别 男
状态 离线
Originally posted by lxmxn at 2007-3-19 05:17 PM:

  A.bat里面的代码就一句:call B.bat&&call C.bat;

  兄说的睡眠是延时的意思么?


如果B.bat里含有调用exe就不行了呀


睡眠是延时就是线程Sleep
7 发表于 2007-03-20 07:49 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
19年会员
UID 59080
状态 离线
Originally posted by ivanisme at 2007-3-19 18:38:

如果B.bat里含有调用exe就不行了呀

睡眠是延时就是线程Sleep


  含有exe文件可以用start命令来调用;start /min "" exefile.exe

  哦,这个可以用ping命令来简介实现延时;ping 127.1 5 >nul 2>nul,这样可以延时大约4秒钟。
8 发表于 2007-03-20 21:48 ·  IANA 局域网IP(Private-Use)
初级用户
积分 30
发帖 13
注册 2007-03-14 00:28
19年会员
UID 81631
性别 男
状态 离线
现在的状况是B.bat里有调用exe的东西。
C.bat是调用其它的bat文件
A.bat仍然调用 B.bat、C.bat (要B执行完,C再执行)

lxmxn老兄有什么好的方法呀?
9 发表于 2007-03-20 23:03 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
19年会员
UID 59080
状态 离线

  几个批处理可以干的事情,用一个批处理也可以完成,你就说说你最终是要达到什么目的吧。
10 发表于 2007-03-20 23:26 ·  IANA 局域网IP(Private-Use)
初级用户
积分 30
发帖 13
注册 2007-03-14 00:28
19年会员
UID 81631
性别 男
状态 离线
这个批处理的功能是:
先调用一个exe程序(这个需要时间),然后再运行一个外在的bat文件(别人Supply),如果exe没启动好就运行bat就会报错。所以bat必需在exe后运行。

不知我表达的lxmxn能明白不?
11 发表于 2007-03-20 23:31 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
19年会员
UID 59080
状态 离线
  exe 文件运行之后,延迟一下,大约4秒钟,然后再运行你的 bat 文件。

@echo off
start exefile.exe
ping 127.1 -n 5 >nul 2>nul
call batfile.bat
12 发表于 2007-03-21 00:11 ·  IANA 局域网IP(Private-Use)
初级用户
积分 30
发帖 13
注册 2007-03-14 00:28
19年会员
UID 81631
性别 男
状态 离线
呵呵! 先谢谢lxmxn的回复

试了下MS可以 就是对-n 5有些疑问 查了下ntcmds 不得其解
时间是如何控制的,难道不可以控制吗?

小生愚钝,望lxmxn赐教!
13 发表于 2007-03-21 01:25 ·  中国 上海 东方有线
初级用户
积分 124
发帖 10
注册 2004-04-22 00:00
22年会员
UID 23043
性别 男
状态 离线
如果是我,我就在 B.BAT 中 CALL C.BAT ,再把剩下的A.BAT C/P 到 C.BAT 的结尾
14 发表于 2007-03-21 02:10 ·  IANA 局域网IP(Private-Use)
初级用户
积分 30
发帖 13
注册 2007-03-14 00:28
19年会员
UID 81631
性别 男
状态 离线
Originally posted by free2 at 2007-3-20 12:25 PM:
如果是我,我就在 B.BAT 中 CALL C.BAT ,再把剩下的A.BAT C/P 到 C.BAT 的结尾

你没搞明白呀
15 发表于 2007-03-21 02:16 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
19年会员
UID 59080
状态 离线

  Re ivanisme:

  ping 命令有很多参数,其中有-n和-w两个参数,-n参数是表示发送的ICMP数据包的次数,而-w参数是表示超时的时间间隔的,意思就是如果ping不通指定的主机,在多少秒之后重新发送数据包。默认状态下,-w参数的值是1000,代表一秒,而-n参数指定的是发送的次数,所以指定了-n参数,就可以决定延迟的多少了,利用植树原理,你要延时n秒,那么参数-n就指定为n+1就行了。

  ping 127.1 -n 5 这里的“-n 5”表示指定-n参数的值为5,所以大约延迟4秒钟。


[ Last edited by lxmxn on 2007-3-20 at 01:34 PM ]
论坛跳转: