找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 40092|回复: 2

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

[复制链接]
发表于 2009-12-7 10:48:23 | 显示全部楼层 |阅读模式
我想实现一个这样的效果。
因为有个程序需要安装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)。

各位达人,我只知道这些命令,但是不知道如何将这些写成批处理,加上判断。
麻烦达人帮我写下这出这个批处理。
发表于 2009-12-17 01:55:06 | 显示全部楼层
  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
复制代码
发表于 2017-5-21 13:57:10 | 显示全部楼层
本帖最后由 不知道是谁 于 2017-5-21 13:59 编辑

回复 2# Batcher


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

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 18:41 , Processed in 0.008508 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表