• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    深度分析Win 2003自動升級補丁功能

    發布: 2007-7-13 21:11 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 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這個命令,新補丁都內置了這個命令。

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>