2012-11-23 12 views
6

Nel mio script python:Python: Come posso eseguire il file bat nella nuova finestra cmd?

p = Popen('a.bat') 

Il problema è che l'uscita del file batch è messa alla finestra della console principale in cui ho eseguito il mio script python ... Voglio l'output del file batch di essere mostrato nella nuova finestra della console. Qualsiasi aiuto sarebbe apprezzato. Grazie.

risposta

7

È possibile impostare il flag CREATE_NEW_CONSOLE. Ad esempio:

import subprocess 

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

La documentazione riguardanti shell=True sono incompatibili con la implementation. Se si specifica shell=True, imposta CREATE_NEW_CONSOLE solo se la piattaforma è Win9x o utilizza la shell COMMAND.COM a 16 bit.

+0

Questo dà quello che mi aspettavo ... Grazie. :) – sky

2

Non ho usato python prima, quindi non posso provare, ma questo dovrebbe funzionare

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

Siamo spiacenti, ma questo non funzionerà. È necessario impostare il flag di creazione per dire a 'CreateProcess' di Win32 di creare una nuova console per il processo invece di ereditare la console corrente. – eryksun

Problemi correlati