【bat】パスワード付きZIPを自動生成するバッチファイルの作り方|暗号化・一括処理対応

【bat】パスワード付きZIPを自動生成するバッチファイルの作り方|暗号化・一括処理対応 bat

Windows環境で複数ファイルを一括でZIP圧縮し、さらにパスワード付きで暗号化したい場面は少なくありません。特に、個人情報や業務ファイルなどをメール送信や保管する際、セキュリティ対策としてZIPにパスワードをかけることは重要です。本記事では、パスワード付きZIPを自動生成するバッチファイルの作り方を紹介します。

パスワード付きZIPを作成するための準備

Windows標準のコマンドではパスワード付きZIPの作成はできないため、別途ツールの導入が必要です。この記事では、広く使われている無料のコマンドライン圧縮ツール「7-Zip(7z.exe)」を使用します。

7-Zipのインストールと準備

  1. 7-Zip公式サイトから「7-Zip」のインストーラーをダウンロードしてインストールします。
  2. インストール先の 7z.exe のパス(例:C:\Program Files\7-Zip\7z.exe)をメモしておきます。

基本的なバッチファイルの構文

以下は、単一のフォルダ内のファイルをすべてパスワード付きでZIP化するバッチファイルの例です。

@echo off
setlocal enabledelayedexpansion

rem 圧縮対象フォルダ
set INPUT_DIR=C:\zip_target

rem 出力先フォルダ
set OUTPUT_DIR=C:\zip_output

rem 7z.exe のパス
set ZIP_CMD="C:\Program Files\7-Zip\7z.exe"

rem パスワード(任意に変更)
set PASSWORD=yourpassword

rem 日付付きファイル名を作成
set ZIP_FILE=%OUTPUT_DIR%\backup_%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%.zip

%ZIP_CMD% a -tzip "%ZIP_FILE%" "%INPUT_DIR%\*" -p%PASSWORD% -mem=AES256

echo 圧縮が完了しました: %ZIP_FILE%
pause

このバッチファイルを実行すると、指定したフォルダ内のすべてのファイルがAES256で暗号化されたZIPファイルにまとめられ、指定した出力フォルダに保存されます。

複数フォルダ・ファイルを一括で暗号化する処理

複数のフォルダをまとめて個別のZIPファイルに圧縮したい場合は、以下のようにループを使用します。

@echo off
setlocal enabledelayedexpansion

rem 対象ディレクトリのパス
set BASE_DIR=C:\zip_targets

rem 出力先
set OUTPUT_DIR=C:\zip_output

rem 7z.exe のパス
set ZIP_CMD="C:\Program Files\7-Zip\7z.exe"

rem パスワード
set PASSWORD=secure123

for /d %%F in (%BASE_DIR%\*) do (
  set FOLDER_NAME=%%~nF
  set ZIP_PATH=%OUTPUT_DIR%\!FOLDER_NAME!.zip

  %ZIP_CMD% a -tzip "!ZIP_PATH!" "%%F\*" -p%PASSWORD% -mem=AES256
  echo %%F を圧縮しました → !ZIP_PATH!
)

pause

このスクリプトは、BASE_DIR 配下の各フォルダごとにZIPファイルを生成し、すべてに同じパスワードを設定して保存します。

注意点と補足

  • 7z.exe を使うためには、その実行ファイルのパスが通っているか、フルパスで指定する必要があります。
  • 圧縮処理には時間がかかる場合があるため、大量ファイルを扱うときはログ出力などを加えると便利です。
  • パスワードは暗号化されずにバッチファイル内に記載されるため、バッチファイル自体の管理にも注意が必要です。

まとめ

バッチファイルと7-Zipを組み合わせることで、誰でも簡単にパスワード付きZIPファイルを自動生成できるようになります。業務の効率化やセキュリティ強化のために、ぜひ活用してみてください。