【メモ】7zコマンドリファレンス

7zのコマンドリファレンスは7z Manager(GUI)からヘルプをたどると参照できます。

準備

pathを通しておきます。

rem GUIのインストーラでインストールした場合
set ZIPPER_HOME=C:Program Files7-Zip
rem Chocolatey経由でインストールした場合
set ZIPPER_HOME=C:ProgramDatachocolateybin

path set path=%PATH%;%ZIPPER_HOME%

永続的に通すには、環境変数に追記する必要があります。

基本編

ファイル名はフルパスでも指定できます。

超基本
7z a (ファイル名).zip
カレントの下位ディレクトリを含める
7z a (ファイル名).zip -r . 
カレントの下位ディレクトリを含め、特定のディレクトリを除外
7z a (ファイル名).zip -r . -xr!TEMP -xr!obj
カレントの下位ディレクトリを含め、特定のファイルを除外
7z a (ファイル名).zip -r .  -x!*.zip -x!*.exe -x!*.dll

応用編

カレントの下位ディレクトリを含め、AES256で暗号化 -p以降がパスフレーズ
7z a (ファイル名).zip -r .  -mem=AES256 -ssw -pPassPhrase
カレントの下位ディレクトリを含め、1000MBずつ分割
7z a -v1000m (ファイル名).zip -r .  

バッチ化

カレントの下位ディレクトリを含め、除外あり、日付指定で圧縮

snapshot.bat

echo start
set ZIPPER_HOME=C:Program Files7-Zip
path set path=%PATH%;%ZIPPER_HOME%
for /F "tokens=1-3 delims=/" %%D in ("%date%") do set y=%%D&set m=%%E&set d=%%F
7z a bak%y%%m%%d%.zip -r . -xr!TEMP -xr!obj -x!*.zip -x!*.exe -x!*.dll
echo end
TIMEOUT /T 5

これをなんらかの作業フォルダに(例えばエクセルファイルなど)置いて走らせると、取りあえずのスナップショットが取れます。変更履歴やgitで管理とう手法も便利なのですが、こういうやり方もなかなか原始的でわかりやすいのではないかと(笑)
あ、目的のファイルが作業中だとエラーになるので一旦閉じたほうがいいかも。

参考

7-zip -OSDN
https://sevenzip.osdn.jp/chm/cmdline/