2012-11-23 12 views
6

私のPythonスクリプトで:Python:新しいcmdウィンドウでbatファイルを実行するにはどうしたらいいですか?

p = Popen('a.bat') 

問題は、バッチファイルの出力は、私は私のPythonスクリプトを実行するメインコンソールウィンドウに置かれていることである...私は、バッチファイルの出力になりたいです新しいコンソールウィンドウに表示されます。どんな助けもありがとう。ありがとう。

答えて

7

を動作するはずです。たとえば:shell=Trueに関する

import subprocess 

p = subprocess.Popen('a.bat', creationflags=subprocess.CREATE_NEW_CONSOLE) 

ドキュメントはimplementationと矛盾しています。 shell=Trueを指定した場合、プラットフォームがWin9xまたは16ビットのシェルを使用する場合にのみ、CREATE_NEW_CONSOLEが設定されます。

+0

これは私が期待したことを与える...ありがとう。 :) – sky

2

私は前のpythonを使用していないので、私はテストすることはできませんが、これはあなたがCREATE_NEW_CONSOLEフラグを設定することができます

p = Popen('cmd.exe /k start a.bat') 
+0

申し訳ありませんが、これは動作しません。現在のコンソールを継承するのではなく、プロセスの新しいコンソールを作成するように、Win32の 'CreateProcess'に作成フラグを設定する必要があります。 – eryksun

関連する問題