如何判断系统已安装某个补丁<已解决>
本帖最后由 AU3stfans 于 2018-5-4 12:59 编辑我想在给win8.1系统安装某个或某几个独立补丁前,用AU3编程判断这些补丁是否已安装,怎样才能实现,比如我给系统安装独立补丁KB299226前,先用脚本判断该补丁是否已安装。如果没有安装,则进行安装操作……谢谢!大神 本帖最后由 zldfsz 于 2018-4-28 00:09 编辑
没win8系统,win7 64测试通过
#include <Constants.au3>
$hotfixid = "KB299226"
Local $foo = Run(@ComSpec & " /c wmic qfe GET hotfixid", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
Local $line
Local $sResult
While 1
$line = StdoutRead($foo)
If @error Then ExitLoop
$sResult &= $line
Wend
IfStringInStr($sResult,$hotfixid) Then
MsgBox(0, "结果", "补丁“"&$hotfixid&"”已安装")
Else
MsgBox(0, "结果", "补丁“"&$hotfixid&"”未安装")
EndIf 感谢大神指导。 如果问题解决了,请编辑帖子在标题上加上【已解决】 回复 4# zldfsz
大神,有一点不明白就是下面的死循环,如果没有错误,会一直处于循环状态,后面的if语句是如何执行的?
While 1
$line = StdoutRead($foo)
If @error Then ExitLoop
$sResult &= $line
Wend 如果$line = StdoutRead($foo,true)这样,就会死循环。
StdoutRead($foo)正常读取数据后,下一次会没读取到数据就返回一个错误, 则退出循环。 回复 6# 志艺风云
感谢大神
页:
[1]