[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[系统相关] 批处理如何判断操作系统中是否安装了某一个补丁?

我想实现一个这样的效果。
因为有个程序需要安装Windows Installer 3.1才能运行。一般很多人都是windows xp sp2(而且不爱打开自动更新),所以是没有这个补丁的。但是sp3、windows vista和7好像有。
其实我就达到的目的是,检测操作系统是否windows xp,是的话再检测系统是否安装了补丁“WindowsXP-KB942288-v3-x86.exe”(Windows Installer 4.5)。如果安装了就自动运行下一个程序(setupwin.exe)。如果不是的话就默认安装补丁“WindowsXP-KB942288-v3-x86.exe”,并不立即启动。
如果检测到是windows vista和7,那就自动运行(setupwin.exe)。

这个批处理应该如何写?
先使用ver命令判断是否是“Microsoft Windows [版本 5.*.***]”如果不是就自动运行(setupwin.exe)。
如果检测不是的话,就使用systeminfo察看是否安装补丁“KB942288”如果没有就自动安装WindowsXP-KB942288-v3-x86.exe。安装完后不立即重新启动再自动运行(setupwin.exe)。

各位达人,我只知道这些命令,但是不知道如何将这些写成批处理,加上判断。
麻烦达人帮我写下这出这个批处理。

  1. @echo off
  2. (ver | findstr /c:"Microsoft Windows [Version 5.") && (systeminfo | findstr /i "KB942288" || WindowsXP-KB942288-v3-x86.exe /passive /norestart /nobackup)
  3. start setupwin.exe
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 不知道是谁 于 2017-5-21 13:59 编辑

回复 2# Batcher


    最近因为永恒之蓝漏洞,公司内部很多机器需要安装补丁,但有些电脑个人已经安装过这个补丁,所以就想找个检测已安装补丁的命令。
systeminfo是可以做到,但执行效率太低了,而且部分经过精简的XP系统没有这个命令,个人感觉用wmic qfe get hotfixid会更好些。

TOP

返回列表