を使用して、バッチファイル内の別のバッチファイル:ユーザーが管理者\デスクトップを実行し、私はCの場所にMainfile.batという名前のBATファイルを実行したいPythonのサブプロセスモード
Mainfile.bat内容を\ \
start cmd /k call C:\Users\Administrator\Desktop\1.bat
start cmd /k call C:\Users\Administrator\Desktop\2.bat
start cmd /k call C:\Users\Administrator\Desktop\3.bat
Mainfile.batが起動すると、batファイルで指定された3つのbatファイルを実行する必要があります。私はMainfile.batファイルを実行した場合
私が欲しい欲しいことは、実行すべき、次のとおりです行うには
は、私のような、
subprocess.call("C:\\Users\\Administrator\\Desktop\\Mainfile.bat",stdin=None, stdout=None, stderr=None, shell=False)
print "Finished"
予想される出力は、Pythonでコードを書いた、ありますそれで、Mainfile.batの各batファイルは処理を完了するまでに時間がかかり、処理が完了すると自動的に終了します。 すべてのこれらのバットファイル(1.bat、2.bat、3.bat)のみを実行した後、私はコンソールで "finished"を印刷する必要があります。
実際の出力:
しかし、それはMainfile.batファイルを実行したら、それは3つのBATファイルを実行し、それがすぐに印刷するには、console..Howに私が予想出力を達成することができ、「終了しましたか」? Mainfile.bat
あなたは、プロセスの実行が完了するまで待機します)(通信を使用することができます(
start 1.bat
start 2.bat
start 3.bat
) | pause
echo done!
'shell = True'を試してみませんか?たぶん、シェルから実行を指定すると、シェルが終了するまでブロックされます。 –
@cᴏʟᴅsᴘᴇᴇᴅいいえ、試してみましたが、動作していません –
** START **コマンドで** CALL **を使う必要はありません。それはあなたの問題を解決しません。そのコードが必要でないことを伝えるだけです。 – Squashman