在我的python脚本:Python:我如何在新的cmd窗口中执行bat文件?
p = Popen('a.bat')
的问题是,该批处理文件的输出被投入在我执行我的Python脚本主控制台窗口...我想要的批处理文件的输出为在新的控制台窗口中显示。任何帮助,将不胜感激。谢谢。
在我的python脚本:Python:我如何在新的cmd窗口中执行bat文件?
p = Popen('a.bat')
的问题是,该批处理文件的输出被投入在我执行我的Python脚本主控制台窗口...我想要的批处理文件的输出为在新的控制台窗口中显示。任何帮助,将不胜感激。谢谢。
您可以设置CREATE_NEW_CONSOLE
标志。例如:
import subprocess
p = subprocess.Popen('a.bat', creationflags=subprocess.CREATE_NEW_CONSOLE)
关于shell=True
的文档是与implementation不一致。如果指定shell=True
,则只有在平台是Win9x或使用16位COMMAND.COM
外壳程序时,才会设置CREATE_NEW_CONSOLE
。
我以前没有使用过蟒蛇,所以我无法测试,但这应该工作
p = Popen('cmd.exe /k start a.bat')
对不起,但这是行不通的。它需要设置创建标志来告诉Win32的'CreateProcess'为该进程创建一个新的控制台,而不是继承当前的控制台。 – eryksun
这给我所期望的...谢谢。 :) – sky