厦门电脑维护网:WWW.XM126.NET
网站首页
厦门电脑维护
厦门网络维护
厦门网络布线
厦门电脑维修
厦门网站建设
[厦门主机域名网]
[收藏电脑维护网]
[厦门网站建站网]
首页
软件维护
硬件维护
网络维护
打印机维修
维护报价
我们的优势
软件常识
硬件常识
网络常识
专家案例
电脑商情
宣
传
栏
厦门企业电脑包年服务
厦门硬盘专业数据恢复
厦门家庭电脑包年服务
厦门芯片级板卡的维修
厦门硬件平价上门送货
厦门网站建设推广服务
厦门承接大型网络工程
厦门电脑--清洁与保养
厦门打印机维护与保养
厦门地区电脑上门维护联系
联系电话:0592-8552260
联系人:林先生
邮箱:web@xm126.net
您只需一个电话其它的一切电脑问题都由我们来帮您解决。
栏目搜索
您现在的位置:
厦门电脑维护维修网
>>
文章中心
>>
菜鸟学堂
>>
操作系统
>> 文章正文
深度分析Win 2003自动升级补丁功能
作者:电脑文盲 文章来源:厦门电脑维护网 点击数: 更新时间:2006-4-28
有读者反映使用批处理Windows自动升级文件有问题。有些补丁包安装时出现了错误提示,无法继续。
经过研究,发现这是由于Windows主要有两类不同的补丁程序,需要使用不同的参数,一旦参数错误,会导致无法安装,所以对不同补丁需要使用不同的参数。我们来具体分析一下。
从
图片
看补丁类型
如图1,把Windows 2003 Server的补丁文件放在同一个目录,
可以清楚地看到补丁文件名字前面的图标有两种类型,一种是简单的可执行文件图标,另外一种是标志压缩文件的可执行文件图标。
从属性分析格式
WindowsServer2003-KB823559-x86-ENU.exe文件的图标是一个简单的可执行文件图标。从图2中可以看到该补丁的帮助信息,发现它使用
微软
的update程序来安装补丁。从图3可以查看该补丁的版本信息,它是由SFXCAB.EXE制作而成,所有其他具有普通可执行文件图标的补丁程序都有类似性质。
DirectX9-KB819696-x86-ENU.exe文件的图标是一个标志压缩文件的可执行文件图标,可以查看该补丁的帮助信息。它所认识的参数不包括/U和/Z,如果使用/U 参数来运行就会产生错误。同样,查看该补丁的版本信息,可以看出DirectX9-KB819696-x86-ENU这个补丁是由WEXTRACT.EXE而来的,所有其他的具有标志压缩文件的可执行文件图标的补丁程序也都有类似特征。
现在很清楚了Windows有两类不同的补丁,使用不同的补丁程序,需要参数也不一样。
自动分清补丁的格式
如何在批处理文件中区分这两类不同的补丁呢?最稳妥的办法是找一个小程序检测补丁文件资源信息,如果补丁资源中包括了一个标志压缩文件的可执行文件图标,那么该补丁就是第二类补丁,仅仅使用/Q参数,如果补丁资源中不包括图标,那么就是第一类补丁,可以使用/U /Q /Z参数来安装补丁。
这里给出一个更简单的方法,仅仅使用Windows的内部命令,不需要额外程序了。查找补丁文件中的特征字符串,如果一个字符串仅仅在某一类补丁程序中存在,就可以根据这个来区分补丁的类型。
第一步:如图4,用文本编辑器分别打开WindowsServer2003-
KB823559-x86-ENU.exe 文件和DirectX9-KB819696-x86-ENU.exe文件,可以找到很多特征字符串,如字符串“_SFX_CAB_EXE_PATH”仅仅存在于SFXCAB.EXE类型的补丁中,而字符串“CABINET”和“WEXTRACT”仅仅存在于WEXTRACT.EXE类型的补丁文件中。所以可以用查找字符串的方法来决定补丁文件的类型。
第二步:在“开始→运行”菜单中输入“cmd”,然后进入补丁所在文件夹,运行如下命令,就可以指明该补丁文件需要的参数:
(@findstr _SFX_CAB_EXE_PATH 补丁文件名字 >nul && @echo 参数 /U /Q /Z) || @echo 参数 /Q
上面命令的意思是如果查找到字符串_SFX_CAB_EXE_PATH,就说明补丁使用 /U /Q /Z参数 ,否则使用/Q参数。
第三步:运行结果如图5所示。
一劳永逸的简单方法
如果先识别判断,再根据结果加参数,然后再运行批处理,未免太麻烦了。这里给出完整的批处理命令,可以把判断和安装补丁合二为一:
FOR /R %%F IN (*.exe) DO @((@findstr _SFX_CAB_EXE_PATH "%%F" >nul && @start /wait %%F /U /Q /Z ) || @start /wait %%F /Q )
qchain.exe
把该批处理文件放在补丁目录,不需要把补丁文件集中到同一个目录中,for命令的/R参数会自动搜索所有子目录。注意:对于2002年12月份后的补丁,基本上不需要使用qchain这个命令,新补丁都内置了这个命令。
【
发表评论
】【
加入收藏
】【
告诉好友
】【
打印此文
】【
关闭窗口
】