7-Zip を使ってフォルダを圧縮するバッチファイル

指定フォルダを指定名で Zip 圧縮して、バッチファイルと同じフォルダに配置するサンプル。

backup.bat コード

@echo off
setlocal

pushd "%~dp0"
set bin="C:\Program Files\7-Zip\7z.exe"

%bin% a bin.zip "C:\bin"
%bin% a data.zip "C:\data"
%bin% a quicklaunch.zip "C:\quicklaunch"
%bin% a firefox.zip "%appdata%\Mozilla\Firefox"

popd
pause

使い方

  • backup.bat上記内容で新規する
    • 7-Zip のパスを正しいものに修正する
    • バックアップしたいフォルダを例にならって書き並べる
      • %bin% a (圧縮後名).zip "(バックアップしたいフォルダのフルパス)"
  • backup.bat を起動する

すると DOS 窓が立ち上がって圧縮処理が走り、同じフォルダ内に zip ファイルが生成される。

こんなバッチをつくった動機

私は仕事の Windows PC をバックアップするのに Sota氏のBackup を使って、外付け HDD にバックアップしている。

しかし大人の事情で外付け HDD が使えなくなりそうである。バックアップはどうすればいいのか。

幸いにも共有フォルダが用意されているので、コピー先をそこに変えればいいだけか……というとそうもいかず 共有フォルダだけあってコピーが遅いケチくさくて 空き容量も十分じゃない。

ならば、と 7-Zip を用いてバックアップ対象を Zip に固めることでサイズとコピー時間を削減(Zipファイル一つなら何千ファイルをコピーするより断然早い)することにした。