Pythonループで複数のバッチスクリプトを実行しようとしています。しかし、上記のバットスクリプトにはcmd /K
が含まれているため、より良い単語がないため「終了」しません。したがって、Pythonは最初のスクリプトを呼び出して、いつまでも待って...終了しないバッチスクリプトにループする
ここで私が何をしようとしていますかのアイデアを与える擬似コードです:
import subprocess
params = [MYSCRIPT, os.curdir]
for level in range(10):
subprocess.call(params)
私の質問は:「神託がありますコンソールコマンドを元に戻してループを再開するソリューション?
編集:私は今、彼らが戻るのをしかし、これはほぼ同時に私の全体のループを発売する
Popen(params,shell=False,stdin=None,stdout=None,stderr=None,close_fds=True)
を使用して、待たずに子プロセスを起動し、継続することが可能であることを承知しています。子プロセスがそのタスクを実行し、cmd /K
に達してアイドル状態になるときに戻るまで待つ方法はありますか?
OBS:誰かがなぜ私は 'cmd/K'をスクリプトから削除しないのか尋ねる前に、いくつかの理由があります。説明するのが一番簡単なことは、それらのスクリプトが私の同僚と共有されていることです。私はそれらのスクリプトを気にしたくありません。 –
[この回答](http://stackoverflow.com/a/6700359/174652)のように見えます。 – joeb
ありがとうございました! 'DETACHED_PROCESS'はバッチの実行を一切スキップしているようです。 'Popen'のために提案された他のオプション、すなわち' shell = True、stdin = None、stdout = None、stderr = None、close_fds = True'は非常に便利です。スクリプトは、子プロセスが終了するのを待機しません。これは、10個のスクリプトを並列スレッドとして実行する場合に非常に便利です。 しかし私は、子プロセスがタスクを実行し、 'cmd/K'に衝突してアイドル状態になるのを待つ方法を探していると思います。これはまったく可能ですか?これを反映するために質問を編集する必要がありますか? –