lisz-works

プログラミングと興味を貴方に

7-Zipでフォルダごとに圧縮・削除するバッチファイル

【スポンサーリンク】

7-zip

こんにちわlisです!

フォルダ単位でファイルを保管してる場所はありませんか?

そんなときにこのバッチで、各フォルダを7z形式で圧縮しちゃいましょう!

やっていること

7-Zipを使ったフォルダの圧縮と、圧縮したフォルダの削除を行います。

例えばこんなフォルダ構成のものがあるとします。

C:\hoge
   +- folder1
   +- folder2
   +- folder3

hogeの位置でこのバッチを実行すると

  • folder1~3がそれぞれ7zで圧縮される
    • ex: folder1.7z
  • 圧縮済みのフォルダを削除する
    • ex: folder1.7zが作成された→folder1削除

処理済みフォルダのような場所に、フォルダ単位で蓄積した場合、月日が立つとどんどん蓄積され、結構なサイズになります。

本当はバージョン管理ソフト任せにするのが得策だと思いますが

「フォルダ単位でファイルを残しておきたい!でもディスクを圧迫する!」

ということを少しでも軽減使用という試みです。

ソース

これを使えば

  • フォルダ別に7z化される!
  • 元のフォルダを削除するのでサイズ軽減!
@echo off
rem #-[singole-zip.bat]---------------------------------------------------------
rem # 7-zipを使ったフォルダ個別アーカイブバッチ
rem #
rem # フォルダ内の全フォルダを、7zでアーカイブ後、元フォルダを削除します。
rem # このバッチはフォルダのみが対象で、フォルダ内のファイルはなにも行いません。
rem #---------------------------------------------------------------------------

set exe="C:\Program Files\7-Zip\7z.exe"

for /R /D %%i in (*) do  (
    echo Processing file: %%i
    cd "%%i"
    %exe% a -t7z -mx=0 "%%i.7z" * >> NUL
    cd ..
    if exist "%%i.7z" (
        rd /S /Q "%%i"
    )
)

Tips

このバッチファイルを作成し、それをパスの通ったフォルダに格納しておくと便利です。

対象フォルダを開いたエクスプローラのアドレスバーから、このバッチファイル名を叩くと、そのフォルダ内でこのバッチファイルを実行する事ができます。

あとがき

7-Zipでフォルダごとに圧縮・削除するバッチファイルでした!

結構昔に作ったものですが、前述のケースが発生したときに役立ちます。

「とりまフォルダで管理したいけど圧縮保存しときたい」

というときに活躍します!

www.lisz-works.com

www.lisz-works.com