我想自动检查机器上是否安装了某些KB。 我的python脚本的一部分:
import subprocess
result = subprocess.run(['cmd', '/c wmic qfe'], shell=True, stdout=subprocess.PIPE)
ftemp = open('mylog.txt','w') #just to check what is going wrong
ftemp.write(str(result.stdout))
ftemp.close()
if str(result.stdout).find('KB2999226')==-1:
print('Nah, you don't have KB')
sys.exit()
执行时我在shell中得到了什么:
qfe" - Alias not found.
Nah, you don't have KB
mylog.txt:指定
b''
所以,看起来像破折号或编码的一些愚蠢的问题。我尝试了各种各样的命令,但没有成功。 (是的,“dism”会导致另外一些错误)。 一些建议?
答案 0 :(得分:2)
以下是您问题的一部分:
print('Nah, you don't have KB')
应该是
print("Nah, you don't have KB")
答案 1 :(得分:2)
尝试将所有组件分成列表中的元素。
<强>替换强>
result = subprocess.run(['cmd', '/c wmic qfe'], shell=True, stdout=subprocess.PIPE)
<强>与强>
result = subprocess.run(['cmd', '/c', 'wmic', 'qfe'], shell=True, stdout=subprocess.PIPE)