もくじ
→https://qiita.com/tera1707/items/4fda73d86eded283ec4f
やりたいこと
月末に勤怠表を毎回数名分zipして、パスワードかけて、メールでおくらないといけない。
zipしてパスワードかけるのが地味に面倒なので、自動でやりたい。
やり方
フリーソフトの「7-zip」を使う。
前提
7-zipがインストールされていて、C:\Program Files\7-Zip\7z.exe
に実行ファイルがあること。
7-zipは下記からダウンロードできる。
https://sevenzip.osdn.jp/
サンプル
サンプルでは、下記のようなことをしている。
- 勤怠表ファイル名に付ける「〇月度」の〇をユーザーに入力させ、
- そのファイル名で、人数分のxlsxを含めてパスワード付きzipを作る
※面倒なので固定パスワードにしてるが、本当はパスワードも入力させるべきかも。
勤怠表をパスワード付きでzipサンプル.bat
@echo off
chcp 932
rem 対象の勤怠ファイル
set TARGETEXCELFILE1=●●さん.xlsx
set TARGETEXCELFILE2=■■さん.xlsx
rem zipにかけるパスワード
set PASSWORD=password
rem 月の入力を受け付ける
echo 何月度の勤怠表ですか?
set /P INPUT_MONTH=
set ZIPFILE="勤怠表%INPUT_MONTH%月度.zip"
echo %INPUT_MONTH% 月度勤怠表をzipします。
rem 勤怠表をzip(パスワード付きzip)
echo %PASSWORD%| "C:\Program Files\7-Zip\7z.exe" a %ZIPFILE% %TARGETEXCELFILE1% %TARGETEXCELFILE2% -p
rem 終わり
pause
今後
本当は、メールでエクセル表を送るのでメール作成~ファイル添付~送信も自動でやりたいのだが、そこまで手がでなかった。今後余裕があるときに調べる。
参考
7-zipのダウンローページ
https://sevenzip.osdn.jp/
7-Zipでの圧縮をコマンドプロンプトから実行!
https://www.lisz-works.com/entry/compression-7zip-command