SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
てるてる動画

圧縮ファイルをwindowsの標準のコマンドで作成する

圧縮ファイルをwindowsの標準のコマンドで作成するには?

まず、zip形式は無理。機能はあるのに、コマンドがない。困ったことです。

というわけで、cab形式(キャビネット形式)にしましょう。windows はcab形式と仲良し。比較的圧縮率が高く、比較的動作が遅いという特徴がありますが、あまり気にしないことにします。

cab形式の圧縮ファイルを作るコマンド

makecab

コマンドのヘルプ

C:\>makecab
Cabinet Maker - Lossless Data Compression Tool

MAKECAB [/V[n]] [/D var=value ...] [/L dir] source [destination]
MAKECAB [/V[n]] [/D var=value ...] /F directive_file [...]

  source         File to compress.
  destination    File name to give compressed file.  If omitted, the
                 last character of the source file name is replaced
                 with an underscore (_) and used as the destination.
  /F directives  A file with MakeCAB directives (may be repeated). Refer to
                 Microsoft Cabinet SDK for information on directive_file.
  /D var=value   Defines variable with specified value.
  /L dir         Location to place destination (default is current directory).
  /V[n]          Verbosity level (1..3).
キャビネットメーカー - ロスレスデータ圧縮ツール

MAKECAB [/V[n]] [/D var=value ...] [/L dir] source [destination]
MAKECAB [/V[n]] [/D var=value ...] /F directive_file [...]

  source         圧縮したいファイル.
  destination    圧縮後のファイル名.  省略したら、元のファイル名の最後の文字を
                 アンダースコアに変更したものになるよ.
  /F directives  設定ファイル (may be repeated). 
                 Microsoft Cabinet SDK を参照. ここから取得?
  /D var=value   変数を定義します.
  /L dir         圧縮後のファイルを置くフォルダ (デフォルトは現在のディレクトリ).
  /V[n]          ログの情報量レベル (1..3).

使用例

複数ファイルを圧縮するときには、オプションをファイルに書いて渡さないといけない模様。

下記は簡単な使用例。あるデータベースのダンプファイルを圧縮。

C:\temp>makecab test.sql test.cab
Cabinet Maker - Lossless Data Compression Tool

100.00% [flushing current folder]
C:\temp>dir test.*
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は 772F-1A7D です

 C:\temp のディレクトリ

2010/01/22  12:21         7,561,691 test.cab
2009/12/29  22:08        32,299,967 test.sql
2010/01/22  12:24         7,731,694 test.zip

4分の1以下になりました。zipよりもちょっとコンパクト。

関連するメモ

コメント(2)

圧縮ファイルをwindowsの標準のコマンドで解凍する at softelメモ 2010年1月22日 12:42

[…] 前回の圧縮編に続いて、解凍編。 […]

じゅん 2012年6月6日 22:21

ありがとう!参考になりました。