OS.SYSTEM隐藏弹出的命令提示框

16 浏览
0 Comments

OS.SYSTEM隐藏弹出的命令提示框

如果我运行Hello.pyw:

import os
os.system('start hello.exe')

我会得到一个很烦人的弹窗cmd。

如何在没有弹窗的情况下运行这个脚本。

0
0 Comments

问题出现的原因是使用os.system('hello.exe')命令时,会创建一个新的窗口来运行指定的程序或命令。而使用cmd /c命令则可以运行批处理或命令文件。然而,在os.system中使用cmd /c是没有意义的,因为它会运行cmd.exe /c cmd /c "hello.bat"命令,从而创建一个临时的控制台窗口。此外,当从pythonw.exe(.pyw脚本)运行这两个命令时,仍然会创建一个临时控制台窗口。因为os.system使用的是cmd shell,所以Windows会自动创建一个控制台窗口。如果目标程序也是控制台程序,使用start命令实际上会创建两个控制台窗口。解决这个问题的方法是使用subprocess来隐藏控制台或防止控制台窗口的创建。具体的方法可以参考我在这里给出的示例:http://stackoverflow.com/a/7006424/205580。

0