【ツールの概要】
・7zipを利用してパスワード付きのzipファイルを作るbat。
・ここでは、パスワードはiniファイルと日付の文字列を結合して作成。
【環境(使っている環境)】
・Windows10Pro
・7zip(7zip.exeを環境変数pathに追加。)
※他のWindowsでも動くか→動くと思われる。
【ソース(D:\hogehoge\arczip.bat)】
@echo off REM ■■■■■■■■■■変数宣言■■■■■■■■■■ SET SetIni=D:\hogehoge\etc\arcsetting.ini SET Outfol=E:\UploadZip\ SET TargetFile=E:\Upload\*.csv REM ■■■■■■■■■■日付設定■■■■■■■■■■ SET Date_Tmp=%date:/=% REM ■■■■■■■■■■転送設定ファイルリード■■■■■■■■■■ for /f "tokens=1,2 delims=:" %%a in (%SetIni%) do set %%a=%%b SET pass=%phrase%%Date_Tmp% REM ■■■■■■■■■■圧縮■■■■■■■■■■ 7z a -tzip %Outfol%%Date_Tmp%.zip %TargetFile% -p%pass%
【設定ファイル(D:\hogehoge\etc\arcsetting.ini)】
phrase:hoge
【使用方法】
・各変数や処理対象を環境に合わせます。
-D:\hogehoge\etc\arcsetting.ini ←設定ファイル(パスフレーズの一部。ここではhogeですがランダムな文字列を推奨します)
-E:\UploadZip\ ←zipファイルを置くフォルダ
-E:\Upload\ ←圧縮対象ファイル(ここではUploadフォルダ内のcsvを全部)
・batをそのままダブルクリックなどで実行します。
・作成時のテストは「echo %pass%」と「pause」等を挟むと分かりやすいです。
【説明】
・7zipはフリーですが非常に便利なソフトで、このようなコマンドラインも充実しています。
コマンドと各引数は順にこんな感じです。詳細は7zipのサイトを探してください←
7z ←環境変数pathに入ってればこれでおk
a ←圧縮(archive)
-t ←圧縮タイプ(ここではプロパティにzipを指定)
~.zip ←出力ファイル
~ ←圧縮対象ファイル(フォルダ)
-p ←パスワード
【総評】
PowershellならCompress-Archiveで行けますが、外部ツールを使うやり方も場合によっては便利ですね。(powershellのCompress-Archiveはv5からですし)
7zipなら解凍はもちろん、結合分割したりハッシュも取れたり自己解凍書庫もできたり有能ですね。
【参考リンク】
圧縮・解凍ソフト 7-Zip