Board logo

标题: (求助)在用批处理启动N个程序时可不可以用CALL命令 [打印本页]

作者: maya0su     时间: 2005-10-14 17:27    标题: (求助)在用批处理启动N个程序时可不可以用CALL命令

在用批处理启动N个程序时,可不可以用CALL命令?假如可行,如何实现?
在调用CALL命令后,如何消除它那个黑乎乎的窗口?


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


[ Last edited by willsort on 2005-11-5 at 12:34 ]
作者: 不得不爱     时间: 2005-11-3 21:29
在用批处理启动N个程序时,不用CALL命令,除非是启动BAT文件才可以用CALL命令!
作者: willsort     时间: 2005-11-5 13:00
Re maya0su:

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

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

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

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

      另外,在命令行中可以通过 start 命令来运行命令行与非命令行程序,它的 /min 和 /max 开关,可以控制程序在最小化和最大化的命令行窗口中运行;它的 /wait 开关可以控制是否需要等待被调程序结束后再调用其它程序。具体信息可以通过 start /? 查看其命令行帮助文档。
作者: maya0su     时间: 2005-11-7 16:50
只到START命令能够使窗口最小,你的意思是CALL命令无法实现START /MIN的功能是吧?
我的意思这样:
这样一个批处理
start 1.exe
start 2.exe
start 3.exe
......
能够顺利启动所有程序!
而这样:
call 1.exe
call 2.exe
call 3.exe
则无法按顺序启动所有程序!为何?
作者: voiL     时间: 2005-11-7 17:00
start 是直接调用程序的.

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

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