【bat】パスワード付き圧縮(7-zip)

経緯

お客様と固定のパスワードでやり取りをする場合に、パスワード間違いの対策として、スプリクト化を試みました。
調べた結果Windows標準機能だとbat、PowerShell、VBSどれも圧縮はできても、パスワードを指定することが出来ませんでした。

標準ではありませんが、フリーソフト「7-zip」であればCUIでパスワード付き圧縮が出来ました。
フリーソフト原則禁止の弊社でも許可されているぐらい有名なものなので、使える方も多いのではないでしょうか。

7-zipでパスワード付き圧縮

“ドラッグ”or”送る”をしたファイルが対象で、同じディレクトリにzipファイルを生成します。

BAT (Batchfile)
@echo off

REM 圧縮元のディレクトリ
set SOURCE_DIR="%~1" 

REM 圧縮先のファイル名
set ZIP_FILE="%~dp1%~n1.zip"

REM 7-Zipのパス(7z.exeがある場所)
set ZIP_EXE=C:\Program Files\7-Zip\7z.exe

REM パスワード(必要に応じて変更)
set PASSWORD=password

REM パスワード付きで圧縮
"%ZIP_EXE%" a  -p%PASSWORD% %ZIP_FILE% %SOURCE_DIR%