日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

深度分析Win 2003自動(dòng)升級補(bǔ)丁功能

有讀者反映使用批處理Windows自動(dòng)升級文件有問題 。有些補(bǔ)丁包安裝時(shí)出現(xiàn)了錯(cuò)誤提示 , 無法繼續(xù) 。
經(jīng)過研究 , 發(fā)現(xiàn)這是由于Windows主要有兩類不同的補(bǔ)丁程序 , 需要使用不同的參數(shù) , 一旦參數(shù)錯(cuò)誤 , 會導(dǎo)致無法安裝 , 所以對不同補(bǔ)丁需要使用不同的參數(shù) 。我們來具體分析一下 。

從圖片看補(bǔ)丁類型

如圖1 , 把Windows 2003 Server的補(bǔ)丁文件放在同一個(gè)目錄 ,


可以清楚地看到補(bǔ)丁文件名字前面的圖標(biāo)有兩種類型 , 一種是簡單的可執(zhí)行文件圖標(biāo) , 另外一種是標(biāo)志壓縮文件的可執(zhí)行文件圖標(biāo) 。
從屬性分析格式

WindowsServer2003-KB823559-x86-ENU.exe文件的圖標(biāo)是一個(gè)簡單的可執(zhí)行文件圖標(biāo) 。從圖2中可以看到該補(bǔ)丁的幫助信息 , 發(fā)現(xiàn)它使用微軟的update程序來安裝補(bǔ)丁 。從圖3可以查看該補(bǔ)丁的版本信息 , 它是由SFXCAB.EXE制作而成 , 所有其他具有普通可執(zhí)行文件圖標(biāo)的補(bǔ)丁程序都有類似性質(zhì) 。
DirectX9-KB819696-x86-ENU.exe文件的圖標(biāo)是一個(gè)標(biāo)志壓縮文件的可執(zhí)行文件圖標(biāo) , 可以查看該補(bǔ)丁的幫助信息 。它所認(rèn)識的參數(shù)不包括/U和/Z , 如果使用/U 參數(shù)來運(yùn)行就會產(chǎn)生錯(cuò)誤 。同樣 , 查看該補(bǔ)丁的版本信息 , 可以看出DirectX9-KB819696-x86-ENU這個(gè)補(bǔ)丁是由WEXTRACT.EXE而來的 , 所有其他的具有標(biāo)志壓縮文件的可執(zhí)行文件圖標(biāo)的補(bǔ)丁程序也都有類似特征 。
【深度分析Win 2003自動(dòng)升級補(bǔ)丁功能】現(xiàn)在很清楚了Windows有兩類不同的補(bǔ)丁 , 使用不同的補(bǔ)丁程序 , 需要參數(shù)也不一樣 。

自動(dòng)分清補(bǔ)丁的格式

如何在批處理文件中區(qū)分這兩類不同的補(bǔ)丁呢?最穩(wěn)妥的辦法是找一個(gè)小程序檢測補(bǔ)丁文件資源信息 , 如果補(bǔ)丁資源中包括了一個(gè)標(biāo)志壓縮文件的可執(zhí)行文件圖標(biāo) , 那么該補(bǔ)丁就是第二類補(bǔ)丁 , 僅僅使用/Q參數(shù) , 如果補(bǔ)丁資源中不包括圖標(biāo) , 那么就是第一類補(bǔ)丁 , 可以使用/U /Q /Z參數(shù)來安裝補(bǔ)丁 。

這里給出一個(gè)更簡單的方法 , 僅僅使用Windows的內(nèi)部命令 , 不需要額外程序了 。查找補(bǔ)丁文件中的特征字符串 , 如果一個(gè)字符串僅僅在某一類補(bǔ)丁程序中存在 , 就可以根據(jù)這個(gè)來區(qū)分補(bǔ)丁的類型 。

第一步:如圖4 , 用文本編輯器分別打開WindowsServer2003-
KB823559-x86-ENU.exe 文件和DirectX9-KB819696-x86-ENU.exe文件 , 可以找到很多特征字符串 , 如字符串“_SFX_CAB_EXE_PATH”僅僅存在于SFXCAB.EXE類型的補(bǔ)丁中 , 而字符串“CABINET”和“WEXTRACT”僅僅存在于WEXTRACT.EXE類型的補(bǔ)丁文件中 。所以可以用查找字符串的方法來決定補(bǔ)丁文件的類型 。

第二步:在“開始→運(yùn)行”菜單中輸入“cmd” , 然后進(jìn)入補(bǔ)丁所在文件夾 , 運(yùn)行如下命令 , 就可以指明該補(bǔ)丁文件需要的參數(shù):

(@findstr _SFX_CAB_EXE_PATH 補(bǔ)丁文件名字 >nul && @echo 參數(shù) /U /Q /Z) || @echo 參數(shù) /Q

上面命令的意思是如果查找到字符串_SFX_CAB_EXE_PATH , 就說明補(bǔ)丁使用 /U /Q /Z參數(shù) , 否則使用/Q參數(shù) 。

第三步:運(yùn)行結(jié)果如圖5所示 。
一勞永逸的簡單方法

如果先識別判斷 , 再根據(jù)結(jié)果加參數(shù) , 然后再運(yùn)行批處理 , 未免太麻煩了 。這里給出完整的批處理命令 , 可以把判斷和安裝補(bǔ)丁合二為一:
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

把該批處理文件放在補(bǔ)丁目錄 , 不需要把補(bǔ)丁文件集中到同一個(gè)目錄中 , for命令的/R參數(shù)會自動(dòng)搜索所有子目錄 。注意:對于2002年12月份后的補(bǔ)丁 , 基本上不需要使用qchain這個(gè)命令 , 新補(bǔ)丁都內(nèi)置了這個(gè)命令 。

    推薦閱讀