中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-29 09:01
中国DOS联盟论坛 » DOS疑难解答 & 问题讨论 (解答室) » (求助)在用批处理启动N个程序时可不可以用CALL命令 查看 1,120 回复 4
楼 主 (求助)在用批处理启动N个程序时可不可以用CALL命令 发表于 2005-10-14 17:27 ·  中国 山西 临汾 联通
中级用户
★★
积分 241
发帖 131
注册 2005-09-28 19:01
20年会员
UID 42920
性别 男
状态 离线
在用批处理启动N个程序时,可不可以用CALL命令?假如可行,如何实现?
在调用CALL命令后,如何消除它那个黑乎乎的窗口?


—————————————— Edited by willsort ——————————————
分割自:《12388 - 批处理编程的异类》
—————————————— Edited by willsort ——————————————


[ Last edited by willsort on 2005-11-5 at 12:34 ]
房东说:这娃是个好孩子!
2 发表于 2005-11-03 21:29 ·  中国 四川 南充 电信
超级版主
★★★★
我爱DOS
积分 5,310
发帖 2,044
注册 2005-09-26 12:00
20年会员
UID 42843
性别 男
来自 四川南充
状态 离线
3 发表于 2005-11-05 13:00 ·  中国 山西 大同 中移铁通
元老会员
★★★★
Batchinger
积分 4,432
发帖 1,512
注册 2002-10-18 00:00
23年会员
UID 19
性别 男
状态 离线
Re maya0su:

>在用批处理启动N个程序时,可不可以用CALL命令?
可以的。
如果被启动的程序是批处理程序,使用 call 可以使被调程序结束后返回调用程序继续执行,不使用 call 将不会返回;如果不是批处理程序,则与直接调用近乎等效。

>在调用CALL命令后,如何消除它那个黑乎乎的窗口?
使用 call 并不会消除、禁止或者隐藏命令行窗口。
但是在使用 call 调用批处理或者命令行程序时,将不会 额外的 创建命令行窗口,即如果调用程序已创建窗口,则被调程序在已有窗口中运行;如果调用程序未创建窗口,则会创建新窗口来运行被调程序。

如果你的意图是,不通过命令行窗口调用批处理或者命令行程序,那需要自己通过高级语言编程实现CMD或者COMMAND的封装,那将比较复杂。

如果你只是想以最小化的命令行窗口运行程序,那么可以通过首先调用程序的快捷方式,然后在其“属性-〉快捷方式-〉运行方式”中选择“最小化”后确定即可。

另外,在命令行中可以通过 start 命令来运行命令行与非命令行程序,它的 /min 和 /max 开关,可以控制程序在最小化和最大化的命令行窗口中运行;它的 /wait 开关可以控制是否需要等待被调程序结束后再调用其它程序。具体信息可以通过 start /? 查看其命令行帮助文档。
※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
4 发表于 2005-11-07 16:50 ·  中国 山西 临汾 联通
中级用户
★★
积分 241
发帖 131
注册 2005-09-28 19:01
20年会员
UID 42920
性别 男
状态 离线
只到START命令能够使窗口最小,你的意思是CALL命令无法实现START /MIN的功能是吧?
我的意思这样:
这样一个批处理
start 1.exe
start 2.exe
start 3.exe
......
能够顺利启动所有程序!
而这样:
call 1.exe
call 2.exe
call 3.exe
则无法按顺序启动所有程序!为何?
房东说:这娃是个好孩子!
5 发表于 2005-11-07 17:00 ·  中国 广东 肇庆 四会市 电信
中级用户
★★
积分 384
发帖 189
注册 2005-10-19 13:12
20年会员
UID 43709
性别 男
状态 离线
start 是直接调用程序的.

call 是需要等到前面一个程序结束了之后再执行下一个call的.

所以,如果你用call的话,你必须把1.exe关闭之后它才会执行call 2.exe这一行.
论坛跳转: