斌斌小站
 
(banner)
斌斌小站   視窗專欄>>Windows





利用 extract.exe 解壓縮 Windows 的CAB檔案

最後更新日期:2002-01-04

適用版本:
Windows Me
Windows 98
Windows 95

 

你在 Windows 95、98、Me、2000、XP、IE..等等的光碟片中都會看到 Windows 的原始檔案都是以.cab 的方式儲存著 。.cab 檔案是 Windows 的專屬格式的壓縮檔案,當作業系統的一些重要系統檔案損壞的時候,我們就需要自己動手把完好的檔案從原版光碟中解出來,來修復作業系統。

如果要從.cab的檔案中取出你要的檔案,可以使用的方法有:

  • 使用Winzip
  • 如果是 Windows 98,可以利用 SFC.EXE 來解(Win95沒有此功能),Windows Me、Windows XP 可以利用 Msconfig.exe 來解。
  • 使用 DOS 下的工具 extract.exe 解出你要的檔案。

但是在這裡,我是要教你利用 extract.exe:這個任在何一版 Windows都有提供的工具程式來解出你需要的檔案,當你Windows 無法啟動的時候,就需要學會這一種「自救」的方法。

因為,前兩個方法雖然簡單,但必須是你的 Windows系統還能進得去才管用,萬一,你的Windows已經沒法正常啟動,你只能進入Command Prompt(即 DOS)模式,我們就只能利用extract.exe 去解出原始的檔案,來覆蓋掉你系統中已經損壞的系統檔。

extract.exe 這個程式在哪?在Windows的開機片裡(利用新增/移除程式製作的開機片),或是在 C:\Windows\Command 下,或是 Windows 9x 原版光碟裡都可以找得到。

在開始之前,有幾點要提醒:

  • Extract.exe 是一個 MS-DOS 程式,所以沒有視窗的圖形介面,如果你以前曾是 DOS 作業系統的使用者的話,應該對這類程式的使用語法不會感到陌生,沒有 DOS 經驗的使用者,或許一時之間會感覺到困難。
  • .cab 檔案在原版光碟中的位置你要先知道一下:Windows 95 的.cab 檔案是在光碟win95 目錄下,Windows 98的 .cab 檔案是在win98目錄下。
  • 你可以利用開機片開機,或是在Windows的 MS-DOS模式下執行此程式皆可(假如你的Windows還能正常啟動的話)

 

把原版 Windows 95 或 98 光碟放入你的光碟機中,準備以 Extract.exe 解壓縮檔案,extract 的語法如下:

extract /a <cabinet> <filename> /l <destination>

  • cabinet 是 cab 檔案名稱
  • filename 是你要從 cab 取出的檔案名稱
  • destination 是檔案解出後要擺放的位置
  • < >只是用來標記說明的,不是「命令」的一部分,注意:每一參數間都有一空白。
  • 如果你有 DOS 使用經驗,不妨可以使用 /? 參數(extract /?)來看一下 extract 的指令說明。
  • 因為我並沒有 Windows 95/98 的 cab 詳細清單,所以,我也不知道哪個檔案是在哪個 cab 檔案裡,唯一的方法,就是去試著一個個cab裡慢慢找。

舉個實際的例子會比較容易明白,假設,我要解 Shell.dll 這個檔 C:\Windows\System下(Shell.dll 是在 precopy1.cab 裡),又假設我的光碟機代號是 F(實際練習時,你換成你的光碟機代號就行了)。(就是指向你 cab檔的所在路徑

那麼這個指令與後面的參數就是:

extract  /a  f:\win98\precopy1.cab  shell.dll  /l  c:\windows\system

extract 也可以接受「萬用字元」* 符號。

DOS 的使用者都知道,所謂的星星符號「*」就是萬用字元,什麼是「萬用字元」?就是用一個符號代表所有的字,例如 *.txt 的意思就是指:所有附檔名為 txt 的檔案。

例如我要把 win95_02.cab 裡的所有 txt 檔解壓到 c:\windows 下,就是:
extract  /a  f:\win95\win95_02.cab  *.txt /l  c:\windows 

■如果想看某一 cab 檔的內容:
extract /d <cabinet>

■如果想連續看 cab 檔的內容:
extract /a /d <cabinet>

cab 檔案有「連鎖」的特性,找完一個,會接著找與其連接的第二個,一直連鎖下去,例如找完 Base4.cab 會接著找 Base5....找完Win98_21.cab,接下來就繼續搜 Win98_22.cab、Win98_23.cab....等等,依此類推。

例如說,我想要顯示 win98_21.cab 到 win98_76.cab 的內容,就是 

extract /a /d win98_21.cab
extract 會讀完win98_21.cab之後,繼續讀下一個,直到最後一個為止。 

■尋找檔案
extract /a /d <cabinet> <filename> 

例如我想尋找 vmm32.vxd 是位在哪一個 cab 裡,就是:
extract  /a  /d  f:\win98\win98_21.cab  vmm32.vxd 

(因為 win98_21.cab 是在 win98 目錄下,又因為 win98_21.cab 是一般 windows 檔案的第一個 cab 檔,之前說過,cab 檔有連鎖性,只要找第一個,extract 就會接著找第二個、第三個,所以我這邊讓它從 win98_21.cab 這個檔開始找起。)

extract 就會從 win98_21搜尋起,一直找到最後一個 cab檔案為止,不過,如果找尋的 cab 太多的話,因畫面捲動太快,有時候會不太容易看到檔案是在哪一個 cab 檔案裡。

 

相關文章:利用SFC(系統檔案檢查員)從原始光碟上抽出檔案

 

 

 

[ 回總目錄 | 回此單元目錄 | 回首頁 ]

 


logo

 


binbin.net

© 2002 binbin.net All Rights Reserved. 作者:車成斌
尊重著作,請不要抄襲
Comments? Questuins?  email to chengbin@ms2.hinet.net