使批处理文件中的启动命令工作

时间:2013-10-17 09:29:48

标签: batch-file

我有以下内容,但是当我执行时,我发现FOR循环似乎永远不会运行 - 有趣的是for循环之后的Start语句将执行。我有点困惑。

Start "Starting up Master Node" /D "c:\mydir" cmd /k "Master.exe"
FOR /L %%i in (1,1,%SlaveNodes%) DO (call slavenode.bat  %%i %mycores%)

1 个答案:

答案 0 :(得分:0)

这是您的批处理流程:

Start "Starting up Master Node" /D "c:\mydir" cmd /k "Master.exe"

此命令将启动另一个进程(其他初始进程)以运行cmd /K Master.exe

因此,在这个新流程中,Master.exe已执行且/K窗口仍处于打开状态。

同时,原始流程继续

FOR /L %%i in (1,1,%SlaveNodes%) DO (call slavenode.bat  %%i %mycores%)

执行slavenode.bat %SlaveNodes%次(原始流程)。

然后,终止。如果原始进程是从非持久性方法(例如,从资源管理器)启动的,则原始进程窗口(如果有)将消失。

如果您期望Master.exe看到来自slavenode.bat的内容,请记住,当它在新进程中启动时,执行前的开销可能需要更长时间才能运行。