“我如何隐藏?”;“没有可用的实例”;用python?
我编写了一个脚本,在启动新的Chrome实例之前查找现有的Chrome进程(使用wmic)并杀死它们(使用taskkill) 问题是,在没有运行Chrome进程的情况下,我会被一个cmd窗口卡住,它只会说“没有可用的实例”。它仍然在我想要的页面上启动Chrome,每一次,我只是打开那个窗口,我不想让它出现在那里 这似乎是造成问题的原因(我把其他的都注释掉了,结果就是这样): 我尝试在发送给wmic的字符串末尾添加“我如何隐藏?”;“没有可用的实例”;用python?,python,cmd,wmic,Python,Cmd,Wmic,我编写了一个脚本,在启动新的Chrome实例之前查找现有的Chrome进程(使用wmic)并杀死它们(使用taskkill) 问题是,在没有运行Chrome进程的情况下,我会被一个cmd窗口卡住,它只会说“没有可用的实例”。它仍然在我想要的页面上启动Chrome,每一次,我只是打开那个窗口,我不想让它出现在那里 这似乎是造成问题的原因(我把其他的都注释掉了,结果就是这样): 我尝试在发送给wmic的字符串末尾添加>nul。没有效果 我尝试在关闭后添加sys.exit()。没有帮助 我甚至试着把它
>nul
。没有效果
我尝试在关闭后添加sys.exit()
。没有帮助
我甚至试着把它当作一个例外。这也没有效果
我如何让它停止显示或关闭它(如果它确实显示)?python有没有办法处理它,或者这完全是wmic方面的问题?您可以使用
>CON
和stderr将输出重定向到控制台设备nul2>nul
因此,如果您在命令行中尝试使用以下语法:
wmic process where "name like '%chrome%'" get commandline,processid>con 2>nul
你永远不会得到这个信息
“没有可用的实例”
您可以使用
>CON
将输出重定向到控制台,并使用stderr将输出重定向到设备nul2>nul
因此,如果您在命令行中尝试使用以下语法:
wmic process where "name like '%chrome%'" get commandline,processid>con 2>nul
你永远不会得到这个信息
“没有可用的实例”
使用特定的异常将get_wmic包装到try-except块中并处理它(您可以使用pass-in-except-blockThank:忽略它),但是,正如我在原始帖子中所说的,我尝试将其视为异常处理。我完全按照你说的做了,在街上用了一个通行证。这并没有阻止窗户的存在。另外,我甚至不确定这是否是个例外。我的意思是,这并不是说它破坏了代码或其他东西。运行正常。
%SystemRoot%\System32\wbem\wmic.exe将写入一条错误消息来处理STDERR,而不是将STDOUT作为标准输出处理。您必须将2>nul
附加到Python脚本中使用的命令行,以将错误消息重定向到设备nul以抑制它。请参阅Microsoft关于的文章。我建议阅读博客,最好用Python编写此任务,而不从Python中启动另一个可执行文件。谢谢您的回复。重定向错误消息会使消息消失,但仍然会留下窗口,因此这并不能真正解决我的问题。至于使用PSUTIL,我一定会研究的。谢谢使用特定的异常将get_wmic包装到try-except块中并处理它(您可以使用pass-in-except-blockThank:忽略它),但是,正如我在原始帖子中所说的,我尝试将其视为异常处理。我完全按照你说的做了,在街上用了一个通行证。这并没有阻止窗户的存在。另外,我甚至不确定这是否是个例外。我的意思是,这并不是说它破坏了代码或其他东西。运行正常。%SystemRoot%\System32\wbem\wmic.exe将写入一条错误消息来处理STDERR,而不是将STDOUT作为标准输出处理。您必须将2>nul
附加到Python脚本中使用的命令行,以将错误消息重定向到设备nul以抑制它。请参阅Microsoft关于的文章。我建议阅读博客,最好用Python编写此任务,而不从Python中启动另一个可执行文件。谢谢您的回复。重定向错误消息会使消息消失,但仍然会留下窗口,因此这并不能真正解决我的问题。至于使用PSUTIL,我一定会研究的。谢谢