kurukuru-papaのブログ

主に、ソフトウェア開発に関連したメモを書き溜めたいと思います。

コマンドライン ZIP圧縮コマンド

Windows環境で、コマンドラインからファイルをZIP圧縮する方法をメモします。

Windowsには標準でGUIのZIP圧縮ツールが付属していますが、そのツールは、コマンドラインからは使えないようです。コマンドラインからZIP圧縮をするためには、コマンドラインからの実行に対応したソフトウェアをインストールする必要があるようです。私が愛用している +Lhaca というツールでもコマンドラインからの実行に対応しているようですが、このツールでは、圧縮ファイルの作成先がGUIで設定した場所になってしまい、コマンドラインから自由に設定することが出来ないようです。手頃なツールを探すのも手間なので、私の身近にある、Java SDKに付属のjar.exeの利用を検討してみました。

次のようにZIPファイルを作成できました。ここで、オプションに"M"を付けていますが、これを付けることでマニフェストファイルを作成しなくなります。

set jar=C:\Java\jdk1.6.0_12\bin\jar.exe
%jar% cvfM aaa.txt.zip aaa.txt

指定ディレクトリ(第1引数"%1")直下の全ファイルを、カレントディレクトリへ、各々ZIP圧縮する場合は、次のようになります。

set jar=C:\Java\jdk1.6.0_12\bin\jar.exe
set oldcd=%CD%
cd %1
for %%a in (*) do (
	%jar% cvfM "%oldcd%\%%a.zip" "%%a"
)
cd %oldcd%

なお、ファイル名に日本語を含む場合は、ファイル名が文字化けしてしまいます。