「バックアップを取りたいけど、毎回手動でZIP圧縮するのは面倒くさい・・・」
そんな悩みを抱えたことはありませんか?
この記事ではWindowsのバッチファイルだけでフォルダをZIP化する方法を、PowerShellの標準機能と定番ツール 7-Zipの2通りでわかりやすく解説します。さらに、業務でも役立つパスワード付きZIPの作り方や日付入り自動バックアップまで、すぐコピペできるサンプル付きで網羅しました。
この記事で得られること
- PowerShell だけで素早く ZIP を作成
- 7‑Zip を使った高圧縮&パスワード保護
- バッチファイルに日付を埋め込むテクニック
- タスクスケジューラと組み合わせた「放ったらかしバックアップ」
- 実用上つまずきやすいポイントとその対処法
対象読者
「自動で ZIP して、終わったらフォルダも整理完了」——そんな快適ワークフローを、今日からあなたの環境でも実現しましょう!
方法1:PowerShellでZIP化
Windows10以降の環境なら、PowerShellの標準コマンドだけでZIP化が可能です。別途ソフトをインストールする必要がなく、誰でもすぐに試せるのが魅力です。
基本的な構文
powershell Compress-Archive -Path "C:\SampleFolder" -DestinationPath "C:\Backup\Sample.zip"
このバッチファイルを保存して実行するだけで、C:\SampleFolder
フォルダを ZIP ファイルに圧縮し、C:\Backup\Sample.zip
に出力してくれます。
各オプションの解説
オプション名 | 説明 |
---|---|
-Path | ZIP に含めたいファイル/フォルダのパス(複数指定も可能) |
-DestinationPath | 作成する ZIP ファイルの保存先と名前 |
※あらかじめC:\Backup
フォルダが存在している必要があります。なければ先に作成しておきましょう。
■ 注意ポイント①:パスに空白や日本語がある場合
パスに空白や日本語が含まれているときは、ダブルクォーテーションで囲うことで回避できます。
powershell Compress-Archive -Path "C:\My Documents\プロジェクト資料" -DestinationPath "C:\Backup\資料.zip"
■ 注意ポイント②:上書き不可
Compress-Archive
は、同名の ZIP ファイルがすでに存在している場合、エラーになります(上書き不可)。このため、既存ファイルを削除してから実行したり、日付入りファイル名にするなどの工夫が必要です。
例:既存ZIPを削除してから実行
del "C:\Backup\Sample.zip"
powershell Compress-Archive -Path "C:\SampleFolder" -DestinationPath "C:\Backup\Sample.zip"
■ 実行結果の確認
処理が成功すれば、指定した場所にZIPファイルが作成され、中身を確認すれば元のフォルダ構造がそのまま保たれているはずです。
PowerShellのZIP機能は簡単で手軽ですが、パスワード付きのZIPの作成はできないという制限があります。
そのため、次のセクションではより柔軟な「7-Zip」を使った方法をご紹介します。
方法2:7-ZipでZIP化

PowerShellだけでは”パスワード付きZIP”が作れない — そんな時に頼りになるのが7-Zip。
無料・高圧縮・コマンドライン対応と三拍子そろった定番ツールです。ここではバッチファイルで7-Zipを呼び出してZIPを作成する手順を、基本編 → パスワード編 → 応用編 の順にまとめます。
7-Zipの準備とパス設定
- 公式サイト(https://www.7-zip.org/)から 64bit 版インストーラをダウンロード
- インストール後、実行ファイルのフルパスを確認
既定インストール先は、C:\Program Files\7-Zip\7z.exe
です。 - 環境変数
PATH
に 7‑Zip のフォルダを追加しておくと、どのディレクトリからでも7z.exe
を呼び出せます。
※追加が難しい場合は、バッチ内でフルパス指定でも OK
基本のZIP化(パスワードなし)
"C:\Program Files\7-Zip\7z.exe" a "C:\Backup\Sample.zip" "C:\SampleFolder\*"
コマンド | 意味 |
---|---|
a | add:ZIP を “新規作成または追記” する |
"C:\Backup\Sample.zip" | 出力先 ZIP ファイル |
"C:\SampleFolder\*" | 圧縮対象(末尾 \* でフォルダ配下をすべて) |
パスワード付きZIP(AES-256暗号化)
"C:\Program Files\7-Zip\7z.exe" a ^
-tzip ^
-pMyStrongPass123! ^
-mem=AES256 ^
"C:\Backup\SecureSample.zip" "C:\SampleFolder\*"
オプション | 説明 |
---|---|
-tzip | 出力形式を ZIP 指定(既定は 7z) |
-p<password> | パスワード設定。-p と文字列の間にスペースを入れない |
-mem=AES256 | 暗号化方式を AES‑256 に指定(推奨) |
注意
- パスワードはコマンドラインに平文で残る ので、バッチファイルの権限管理に注意。
- Windows 標準のエクスプローラーからは AES‑256 で暗号化された ZIP を展開できないことがあります。配布相手にも 7‑Zip などの対応ツールを案内しておきましょう。
日付付きファイル名で自動バックアップ(応用)
@echo off
for /f "tokens=1-4 delims=/ " %%a in ("%date%") do (
set YYYY=%%a
set MM=%%b
set DD=%%c
)
set ZIPNAME=SecureBackup_%YYYY%-%MM%-%DD%.zip
"C:\Program Files\7-Zip\7z.exe" a -tzip -pMyStrongPass123! -mem=AES256 ^
"C:\Backup\%ZIPNAME%" "C:\SampleFolder\*"
これで SecureBackup_2025-07-10.zip のように日付入りファイルが毎日生成できます。
タスクスケジューラで 1 日 1 回このバッチを実行すれば、“放ったらかしバックアップ” 完成です。やり方は次のセクションで詳しく紹介します。
よくあるエラーと対処法
症状 | 原因 | 解決策 |
---|---|---|
Error: Incorrect command | オプションのタイポ | スペル確認。特に -p とパスワードの間にスペースを入れない |
ZIP が壊れて展開できない | ネットワークドライブに直接保存 | いったんローカルに作成してから移動 |
パス長制限エラー | フォルダ階層が深過ぎ | 一時フォルダへコピーして圧縮 or Windows で長いパスを許可 |
これで 7‑Zip を利用した 高圧縮 & パスワード付き ZIP の作成はバッチリ。
次のセクションでは「4. 日付付き ZIP で自動バックアップ」をより詳しく掘り下げ、タスクスケジューラ設定まで解説していきます!
日付付きZIPで自動バックアップ(応用編)

毎回同じファイル名で ZIP を上書きするのではなく、「日付入りのファイル名」で毎日自動バックアップできたら便利ですよね?
ここでは、バッチファイルでシステム日付を取り込み、ZIPファイル名に組み込む方法をご紹介します。
さらに、Windowsの「タスクスケジューラ」と組み合わせて完全自動化する流れまで解説します。
バッチファイルの作り方はこちらの記事で解説しています。ぜひご覧ください。
バッチで日付付きファイル名を作る
@echo off
for /f "tokens=1-4 delims=/ " %%a in ("%date%") do (
set YYYY=%%a
set MM=%%b
set DD=%%c
)
set ZIPNAME=Backup_%YYYY%-%MM%-%DD%.zip
powershell Compress-Archive -Path "C:\SampleFolder" -DestinationPath "C:\Backup\%ZIPNAME%"
7-Zipで日付つき&パスワード付きZIPを作る例
@echo off
for /f "tokens=1-4 delims=/ " %%a in ("%date%") do (
set YYYY=%%a
set MM=%%b
set DD=%%c
)
set ZIPNAME=SecureBackup_%YYYY%-%MM%-%DD%.zip
"C:\Program Files\7-Zip\7z.exe" a -tzip -pMyStrongPass123! -mem=AES256 ^
"C:\Backup\%ZIPNAME%" "C:\SampleFolder\*"
セキュリティ重視の方は、パスワードを環境変数から取得するようにすると、バッチファイルに平文で残さずに済みます(応用テク)。
タスクスケジューラで「毎日自動実行」する方法(手順)
1. 「タスクスケジューラ」を起動
Windowsキー → 「タスクスケジューラ」と検索

2. 「基本タスクの作成」をクリック





3. バッチファイルを指定

4. 完了
よくあるトラブルと対策

バッチファイルやZIP作成処理は、一見うまく動いているようで小さな落とし穴が潜んでいることもあります。
ここでは、実際に起こりやすいエラーや失敗例とその対処法をまとめました。
バッチファイルが実行できないといったエラーが発生する場合はこちらが参考になります。
トラブル一覧と対処法
症状 | 主な原因 | 解決策 |
---|---|---|
ZIPファイルが作成されない | パスの記述ミス、対象フォルダが空 | ダブルクォーテーション付きでパスを指定。存在確認を入れる。例:if exist "C:\SampleFolder" (…処理…) |
PowerShellでエラーになる | 実行ポリシーが制限されている | 一時的にバイパス:powershell -ExecutionPolicy Bypass -Command … |
上書きされてしまう/追記されてしまう | 同名ZIPを削除せず実行 | バッチの最初にdel コマンドを入れるか、日付をファイル名に入れて毎回新規作成 |
ZIPが壊れて開けない | ネットワーク経由の保存ミス・途中で中断 | 一度ローカルに保存してから移動するのが安全 |
ZIP作成後に元フォルダが削除されない | 処理順ミス、ZIP失敗時も削除実行されている | if exist で ZIP 成功時だけ削除するように制御 |
パスワードが効いていない(7-Zip) | オプションの書き方ミス | -pパスワード の -p と文字列の間にスペースを入れないよう注意 |
ZIPにしたファイル名が文字化けする | 7-Zip使用時、バッチの文字コード不一致 | バッチファイルを「ANSI」または「UTF-8 BOMあり」で保存する |
まとめ
ここまで、バッチファイルでフォルダをZIP化する方法を、標準機能と外部ツールの2通りで解説してきました。
この記事を参考にして、あなたの環境にぴったりの自動バックアップ処理が完成すれば幸いです。
「定期的にZIP圧縮 → 保存 or 送信 → 元データの削除」まで、全部バッチで完結できますよ!
コメント