はじめに
仕事で初めて.cab
形式のファイルを作る機会があったので、cabファイルの作成(圧縮)と展開の方法をまとめてみました。
cabファイルの作成(圧縮)
1つのファイルの圧縮
- 1つのファイルをcab形式で圧縮する時は、
cab {圧縮するファイル名} {圧縮後のファイル名}
とコマンドを入力します。
1つのファイルの圧縮
PS C:\Users\NKOJIMA\Documents\cabtest> makecab a.txt a.cab
Cabinet Maker - Lossless Data Compression Tool
実行結果
PS C:\Users\NKOJIMA\Documents\cabtest2> tree /F ./
C:\USERS\NKOJIMA\DOCUMENTS\CABTEST2
a.cab
a.txt
サブフォルダーは存在しません
複数のファイルの圧縮
- 複数のファイルを圧縮する場合は、最初に圧縮するファイルを列挙した
.ddf
という形式のファイルを用意します。 -
こちらのページを見ると、拡張子が
.ddf
でなくても正常に動作するようです。 - なお、「;」から始まる行はコメント行となります。
cabtest.ddf
; cabtest.ddf
C:\Users\NKOJIMA\Documents\cabtest\a.txt
C:\Users\NKOJIMA\Documents\cabtest\b.txt
C:\Users\NKOJIMA\Documents\cabtest\c.txt
- 複数のファイルをcab形式で圧縮する時は、
cab /f {.ddfファイル名}
とコマンドを入力します。
1つのファイルの圧縮
PS C:\Users\NKOJIMA\Documents\cabtest> makecab /f cabtest.ddf
Cabinet Maker - Lossless Data Compression Tool
101 bytes in 3 files
Total files: 3
Bytes before: 101
Bytes after: 23
After/Before: 22.77% compression
Time: 0.01 seconds ( 0 hr 0 min 0.01 sec)
Throughput: 6.58 Kb/second
- 1つのファイルを圧縮した時と違い、自動生成された
disk1
というフォルダ内に1.cab
という名前で圧縮ファイルが作られました。 -
1.cab
を任意のファイル名で作る方法は分かりませんでした... - また、
setup.inf
やsetup.rpt
などのファイルも自動生成されていました。 - この2つのファイルはともに圧縮処理のログファイルでした。
実行結果
PS C:\Users\NKOJIMA\Documents\cabtest> tree /F .\
C:\USERS\NKOJIMA\DOCUMENTS\CABTEST
│ a.txt
│ b.txt
│ c.txt
│ cabtest.ddf
│ setup.inf
│ setup.rpt
│
└─disk1
1.cab
cabファイルの展開(解凍)
- cab形式のファイルを展開する時は、
expand {圧縮ファイル名} {展開後のファイル名}
とコマンドを入力します。
cabファイルの展開
PS C:\Users\NKOJIMA\Documents\cabtest> expand .\a.cab .\a.txt
.\a.txt を展開キューに追加しています
ファイルを解凍しています...
ファイルの解凍が完了しました...
- 複数のファイルから構成されているcab形式のファイルを展開する時は、
expand {圧縮ファイル名} /f:{展開するファイル} {展開先のフォルダ名}
とコマンドを入力します。 -
/f
パラメーターで指定する「展開するファイル」は、*
または?
をワイルドカードとして使えます。
複数のファイルから成るcabファイルの展開
PS C:\Users\NKOJIMA\Documents\cabtest> expand .\1.cab /f:* .\test
.\test\a.txt を展開キューに追加しています
.\test\b.txt を展開キューに追加しています
.\test\c.txt を展開キューに追加しています
ファイルを解凍しています...
ファイルの解凍が完了しました...
合計 3 ファイル