0

私は次のものを持っていますが、実行すると、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%)
4

1 に答える 1

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は、新しいプロセスで開始されるため、実行前のこのオーバーヘッドはすべてのスレーブの実行よりも長くかかる可能性があることに注意してください。

于 2013-10-17T13:53:10.870 に答える