我有以下命令:
import subprocess
proc = subprocess.Popen(["shutdown", "/m", r"\\<some comp name>", "/s", "/f"], stdout=subprocess.PIPE, shell=True)
如何获取命令的状态代码,例如,如果计算机不存在,它将输出<comp name> the entered computer name is not valid... talk to y our admin(53)
行的内容,我想要做的是获取命令的退出代码,如果它输出yes
如果它没有输出no
,我怎样才能得到命令的状态代码?
答案 0 :(得分:2)
直截了当的方式,作为标准错误输出的奖励重定向/合并(在错误的情况下通常很有趣):
proc = subprocess.Popen(["shutdown", "/m", r"\\<some comp name>", "/s", "/f"], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
output = proc.stdout.read()
return_code = proc.wait()
(请注意,我删除了shell=True
选项,因为您未在命令中使用shell功能,因此无法使用,如果可以,请保持这种状态
编辑:在回答之前检查重复一段时间,但使用Popen
(https://stackoverflow.com/search?q=subprocess+get+output+return+code)无法找到完全匹配/简单示例