バッチファイルをバックグラウンドで実行しようとしていますが、バッチファイルにエコーがあると実行を停止します。Python:サブプロセスを実行中バックグラウンドでバッチファイルのポップバックがエコー時に停止する
これは私がPythonで使用しているものです:
subprocess.Popen("test.bat", shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
はあまりなかった。これは私の本当のバッチファイルとしてテストのために使用してイム例バッチファイルです:
@ECHO OFF
ECHO %date% %time%: Test 1 >> test.txt
ECHO Test 1
ECHO %date% %time%: Test 2 >> test.txt
ECHO Test 2
これを実行すると、text.txtファイルは "Test 2"テキストで埋められないので、ほとんどの場合 "ECHO Test 1"で停止します。 "ECHO Test 1"を削除したりコメントアウトしたりすると動作します。この単純ではない私の実際のバッチファイルでは、エコー後に複数のファイルで試しても止まります。
バッチファイルをエコー後に手動で実行しているときに動作します。 echoを削除して回避策を実行することはできますが、手動でバッチファイルを実行する場合はうまくいきません。
私は間違ったことをやっているのですか、これはどういう仕組みですか?
このバッチファイルは実際のバッチファイルと同じ問題ですか? –
コマンドの出力が必要ですか?あなたはしばらくしてから出力を消費しなければならないので、そうでなければプロセスはブロックします。 –
実際のバッチファイルと同じ問題があります。このスクリプトでは出力は必要ありませんが、手動でバッチファイルを実行すると便利です。それは停止しないプログラムを起動するので、私のansweRを確認したのですが、バックグラウンドで実行する必要があります。 – Meathook