Windowsコマンド虎の巻

makecab

makecabは、cab形式で圧縮を行うコマンドです。

解説

cab形式はMicrosoft独自の圧縮形式で、Windows内部ではよく使用されている圧縮形式です。
zip形式などとは異なり、他のOSでは見かける事はあまり無いファイル形式です。

cabファイルを解凍するには、expandコマンドを使用します。

構文

(構文)
MAKECAB [オプション] <ファイル名>
【オプション】
オプション説明
/L フォルダ名作成するフォルダを指定する
/F ファイル名作成条件を記したファイルを指定してcabファイルを作成する
/D para=値条件を「パラメータ=値」型式で指定する
/?コマンドのヘルプを表示する

サンプル

「test.txt」をcabファイル「test.cab」に圧縮する

C:¥test>makecab test.txt test.cab Cabinet Maker - Lossless Data Compression Tool 100.00% [flushing current folder]

「test.txt」をcabファイルに圧縮する(cabファイル名は省略)

C:¥test>makecab test.txt Cabinet Maker - Lossless Data Compression Tool 100.00% [flushing current folder]

cabファイル名を省略すると、拡張子の最後の文字が_(アンダーバー)に変換された名称になります。
上の例だと、結果のcabファイル名は「test.tx_」という名称になります。

cabファイルを生成する(カレントフォルダにdirフォルダを作成する)

C:¥test>makecab /L dir test.txt test.cab Cabinet Maker - Lossless Data Compression Tool 100.00% [flushing current folder]

dirというフォルダが作成され、その配下に「test.cab」が作成されます。

2つのファイル「test01.txt、test02.txt」をまとめて test.cabにする

圧縮の条件を記したファイル(.ddf)を以下のように作成して、
そのファイルをmakecabコマンドに指定します。

(inf.ddf)

.Set CabinetNameTemplate=test.cab .Set DiskDirectoryTemplate= test01.txt test02.txt

(実行結果)

C:¥test>makecab /F inf.ddf Cabinet Maker - Lossless Data Compression Tool 48 bytes in 2 files Total files: 2 Bytes before: 48 Bytes after: 31 After/Before: 64.58% compression Time: 0.03 seconds ( 0 hr 0 min 0.03 sec) Throughput: 1.56 Kb/second

指定したサイズで分割したcabを作成する

圧縮の条件を記したファイル(.ddf)を以下のように作成して、
そのファイルをmakecabコマンドに指定します。

(inf.ddf)

.Set CabinetNameTemplate=test*.cab .Set DiskDirectoryTemplate= .Set Cabinet=on .Set MaxDiskSize=1024 aa.txt

(実行結果)

C:¥test>makecab /F inf.ddf Cabinet Maker - Lossless Data Compression Tool 3,410 bytes in 1 files Total files: 1 Bytes before: 3,410 Bytes after: 1,231 After/Before: 36.10% compression Time: 0.05 seconds ( 0 hr 0 min 0.05 sec) Throughput: 64.04 Kb/second

上の例だと、1024バイト単位で分割されたcabファイルが作成されます。「test1.cab」「test2.cab」

コマンドのヘルプを表示する

makecab /?

備考

  • cabの語源は英語の「cabinet(戸棚)」です。
  • cabファイルは、「キャブファイル」や「キャビネットファイル」と呼ばれます。

関連項目

  • expand:cab形式の圧縮ファイルを解凍する