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ファイル一つなら何千ファイルをコピーするより断然早い)することにした。