もくじ
📝 はじめに
PowerShellでファイル整理やバックアップをしていると、
「複数のファイルをまとめてZIPにしたい」
「スクリプトで自動的に圧縮したい」
「定期処理でバックアップ用ZIPを作成したい」
という場面はとても多くあります。
そんなときに使うのが
Compress-Archive です。
PowerShell標準で使える、
ZIPファイル作成専用のコマンドです。
- 複数ファイルをまとめてZIP化したい
- バックアップを自動で圧縮したい
- GUI操作なしでZIPを作りたい
✅ このコマンドでできること(要点)
- ファイル・フォルダをZIP形式で圧縮できる
- 複数ファイルをまとめて1つのZIPにできる
- スクリプトで自動化しやすい
- -Force で既存ZIPを上書きできる
✅ Compress-Archive でできること
Compress-Archive は、
指定したファイルやフォルダを
ZIP形式のアーカイブとして作成するコマンドです。
Windows標準機能として利用でき、
追加ツールをインストールする必要はありません。
「バックアップをZIPにする」
「成果物をまとめて配布する」
といった用途に最適です。
🧩 基本構文
Compress-Archive -Path 圧縮対象 -DestinationPath 出力ZIP
-Path に圧縮したいファイルやフォルダを指定します。
▶ 基本的な使い方(まずこれだけ)
🔹 ファイルをZIPにする
Compress-Archive C:\Work\sample.txt C:\Backup\sample.zip
sample.txt を
sample.zip として圧縮します。
🔹 フォルダをZIPにする
Compress-Archive C:\Work\Data C:\Backup\Data.zip
フォルダ配下の内容を含めてZIPが作成されます。
🛠 よく使われる指定例
🔹 フォルダ内のファイルだけを圧縮する
Compress-Archive C:\Work\Data\* C:\Backup\Data.zip
フォルダ自体ではなく、中身だけをZIPに含めたい場合に使います。
🔹 既存ZIPを上書きする
Compress-Archive C:\Work\Data C:\Backup\Data.zip -Force
すでにZIPが存在していても上書きされます。
💼 実務でよく使う使用例(応用)
🔹 バックアップ用ZIPを日付付きで作成
$date = Get-Date -Format "yyyyMMdd"
Compress-Archive C:\Work\Data "C:\Backup\Data_$date.zip"
🔹 複数フォルダをまとめてZIP化
Compress-Archive C:\Logs\*,C:\Config\* C:\Backup\All.zip
- Get-ChildItem で対象取得
- Get-Date で日付付きZIP作成
- 定期バックアップの自動化
🧩 よくある勘違い・つまずきポイント
- ZIPに追加(追記)はできない
- 既存ZIPは -Force なしだとエラーになる
- 圧縮率の指定はできない
- パス指定ミスで空のZIPができることがある
- 暗号化ZIPには対応していない
🔄 cmdとの違いについて
cmd には標準のZIP作成コマンドはありませんが、
PowerShellでは
Compress-Archive によって
追加ツールなしでZIPを作成できます。
⚠ エラー・うまく動かないときの確認ポイント
- 圧縮対象のパスが正しいか
- 出力先フォルダが存在しているか
- ZIPファイルが開かれていないか
- -Force が必要な状況ではないか
🧠 注意点
Compress-Archive は手軽ですが、
圧縮率指定や暗号化はできません。
セキュリティ用途や高度な圧縮が必要な場合は、
専用ツールとの使い分けを検討しましょう。
📌 まとめ
- Compress-Archive でZIPを作成できる
- ファイル・フォルダどちらも対応
- -Force で上書き可能
- バックアップ自動化に最適
🔎 PowerShellコマンドを探す
やりたいことからコマンドを探すこともできます。
- ZIPファイルを作成したい
- フォルダを圧縮したい
- バックアップをまとめたい
- 複数ファイルをZIPにしたい
- エラーや実行できない原因を調べたい
- PowerShellで自動化したい
- 安全に圧縮処理したい
