在os.startfile()中如何隐藏控制台?

3 投票
1 回答
4417 浏览
提问于 2025-04-16 19:21

我有一个 .bat 文件,里面有一些参数;我用 os.startfile(test.bat) 来运行它。请问有没有办法把它的控制台隐藏起来?我试过用 subprocess,效果不错,但当我关闭主程序的时候,用 py2exe 编译的 subprocess 控制台也会一起关闭。

info = subprocess.STARTUPINFO()
info.dwFlags=1
info.wShowWindow=0 
subprocess.Popen(test.bat,startupinfo=info)

谢谢

1 个回答

8

使用 shell=Truecreationflags=subprocess.SW_HIDE 来配合 subprocess.Popen。这样做对我有效。

subprocess.Popen(['test.bat'], shell=True, creationflags=subprocess.SW_HIDE)

在某些版本的Python中,SW_HIDEsubprocess 模块中可能不可用。在这种情况下,你可能需要使用 _subprocess.SW_HIDE

撰写回答