コマンドプロンプト:zip ファイルの圧縮・解凍
7-Zip で圧縮・解凍
zip ファイルの圧縮・解凍は 7-Zip のコマンドライン版 7za.exe を使うのが便利です。
- ダウンロードページ:SourceForge:7-zip
(2020/10) 下の方にコマンドラインバージョンの ダウンロードがあります。
7-zip 9.20 (7za920.zip, 375kB)。処理で使うのは 7za.exe (570kB) だけです。
インストーラのバージョンを使うと、exe と dll に分かれてるバージョンになります。
実行例
1) 指定フォルダをzip形式で圧縮7za a -tzip (出力zipファイル名) (フォルダ名) 例: 7za a -tzip mydata.zip mydata2) zip ファイルを解凍
7za x (zipファイル名) 例: 7za x mydata.zip3) 指定フォルダを zip形式でアーカイブ (圧縮なし)
画像ファイル(jpg, png, gifなど)や小さな音声・映像ファイル (mp3, mp4など)を1つにまとめる場合に使います。 これらのファイルはすでに圧縮されているので圧縮なしでアーカイブします。 zip 圧縮しても、あまり圧縮されず(元のサイズより大きくなる場合もある)、 ムダに処理時間がかかるだけでメリットはありません。 非圧縮の zip ファイルは解凍もとても高速になります。
7za a -mx0 -tzip (出力zipファイル名) (フォルダ名) 例: 7za a -mx0 -tzip myimg.zip myimg
for文のサンプル:バッチ処理でフォルダ単位でアーカイブ
ファイルを zip化するときに、フォルダ単位で zip 化するバッチ処理。
例:直下に folder1、folder2、folder3 のフォルダがあるときに folder1.zip folder2.zip folder3.zip のようにアーカイブしたい場合。
毎回 GUI とマウスで手作業でやっていたら面倒くさいので バッチ処理で自動化します。
1) 下の bat ファイル (sample.bat) を用意直下のフォルダに対して 7za a -mx0... のコマンドを表示します (echo があるので表示するだけで実行はしません)。
echo off rem sample.bat for /D %%I in (*) do ( echo 7za a -mx0 -tzip "%%~nI.zip" "%%~fI" )2) 処理を実行
sample.bat > tmp.bat type tmp.bat tmp.bat の内容に問題がなければ tmp.bat を実行
tmp.bat の確認も省きたいときは echo 7za の echo を削除して直接実行する。
いろいろ
for文の処理で ~nI や ~fI など意味不明な記号がたくさん出てきます。
下の資料などを参考ください。
Crystal-Creation:コマンドプロンプトの使用方法