Windows11をお使いで、「たくさんのファイルやフォルダーを、一つ一つ個別のZipファイルに圧縮したいけど、手作業で繰り返すのは正直うんざり…」と感じていませんか?
あるいは、「この作業、コマンドやバッチファイルで自動化できないかな?」と思ったことありません?
実はわざわざ専用の圧縮ソフトをインストールしなくても、Windows11に標準で搭載されている「コマンドプロンプト(PowerShell)」や「バッチファイル」を活用すれば、その面倒な個別Zip圧縮作業を格段に効率化・自動化することが可能です。
この記事では、「追加ソフト不要」で実現できる、以下の内容を分かりやすく解説します。
- コマンドを使った、複数のファイル・フォルダーを個別にZip圧縮する具体的な手順(単発利用や試用に最適)
- コピー&ペーストで応用しやすいバッチファイルのサンプルコード(繰り返し作業の自動化に最適)
使い方に合わせて最適な方法を選び、面倒な手作業から解放されましょう。
コマンドを使って複数のファイル・フォルダーを個別にZip圧縮する方法
ここでは、Windowsに標準で搭載されているコマンド機能を使って、複数のファイルやフォルダーを一つずつ個別のZipファイルに圧縮する具体的な手順を解説します。
ここで紹介するコマンドは、コピー&ペーストで実行できるため一見手軽に見えますが、非常に重要な注意点があります。
それは、コマンドを実行する前に、あなたのパソコン環境に合わせて、圧縮したいファイルやフォルダが実際に存在する場所(フォルダパス)へと、コマンドの一部を正しく書き換える作業が必須になる、という点です。
この方法は、バッチファイルを作成する手間がないため、「今回だけ一括で処理したい」「どんな動作をするかまずは試してみたい」といった単発での利用や試用に最適です。
まずは以下の手順に沿って、コマンドの準備と実行を試してみましょう。
まず、これから使用する「コマンドプロンプト」(コマンドを入力してPCを操作するための黒い画面のツール)を起動します。
ここではキーボードショートカットを使った方法を紹介しますが、Windowsの検索バー(タスクバーの虫眼鏡アイコンなど)にcmd と入力して起動する方法も簡単でおすすめです。
「ファイル名を指定して実行」から起動する手順:
- キーボードの
Windowsキーを押しながらRキーを同時に押します。
これにより、「ファイル名を指定して実行」という名前の小さなウィンドウが画面に表示されます。 - 表示されたウィンドウの入力欄に、半角で
cmdと入力します。 - 入力できたら、「OK」ボタンをクリックするか、キーボードの
Enterキーを押します。 - 黒い背景に白い文字が表示される「コマンドプロンプト」のウィンドウが起動すれば、このステップは完了です。

今回ご紹介した方法以外にも、Windowsの検索機能を使う方法など、コマンドプロンプトを起動するにはいくつかの方法があります。
もし他の起動方法も知りたい場合や、各手順を図解付きでより詳しく確認したい場合は、以下の記事が参考になります。
コマンドプロンプトを起動したら、次に、これからコマンドで操作する場所を指定するために、圧縮したいファイルやフォルダがまとめて入っている親フォルダの「パス(Path)」を取得(コピー)します。
※「パス」とは、PC内でのフォルダやファイルの住所のようなものです。
- まず、エクスプローラー(通常、ファイルやフォルダを見るために使う画面)を開き、目的の親フォルダが保存されている場所まで移動します。
- 目的のフォルダーの上で右クリックします。
- 以下の画像で示されているように、表示されたメニューの中から「パスのコピー」という項目を探し、クリックします。

これで、そのフォルダのパス(例: C:\Users\YourName\Documents\WorkFiles のような文字列)がPCのクリップボード(一時的な記憶場所)にコピーされました。
次に、実行するコマンドを準備します。
以下のコマンドの"C:\Users\XXXXXXXXXXXXX"の部分を、先ほどStep2でコピーしたあなた自身のフォルダパスに正確に書き換えてください。
メモ帳などに貼り付けて書き換えると簡単です。
powershell -command "Set-Location '"C:\Users\XXXXXXXXXXXXX"'; Get-ChildItem|Where-Object{$_.Extension -ne '.zip'}|ForEach-Object{$base=if($_.PSIsContainer){$_.Name}else{'{0}_{1}'-f$_.BaseName,$_.Extension.Trim('.')};$zip=$base+'.zip';$n=1;while(Test-Path $zip){$zip=('{0}({1}).zip'-f$base,$n);$n++};Compress-Archive -Path $_.FullName -DestinationPath $zip}"
パスを正しく書き換えられたら、次の手順に進みます。
Step3でパスを書き換えたコマンド全体をコピーしたら、コマンドプロンプトの画面で右クリックして貼り付けてください。
以下の画像のようにコマンドが一行で表示されたら、そのままキーボードのEnter キーを押すと、コマンドが実行されます。

ファイル数によっては処理に時間がかかることがあるため、しばらく待機してください。
コマンドプロンプトに元のプロンプト(例: C:\Users\YourName>)が再び表示されれば、作業完了の合図です。
フォルダー内に、元のファイルやフォルダに対応したzip ファイルが個別に作成されているか確認してください。
- フォルダーは
フォルダー名.zip、ファイルはファイル名_拡張子.zipという名前で圧縮されているはずです。(もし同名のZipファイルが既に存在した場合は、末尾に(1)や(2)といった連番が自動で付加されます。) - 元のファイルやフォルダーは削除されずにそのまま残っています。

バッチファイルを使って複数のファイル・フォルダーを個別にZip圧縮する方法
続いて、バッチファイルを利用して、複数のファイルやフォルダを効率的に、かつ個別にZip圧縮する方法をご紹介します。
「毎回同じような圧縮作業をしている」「もっと簡単な方法はないかな?」と感じている方に、特におすすめの方法です。
コマンドを直接実行する方法は、一度きりの作業には便利ですが、繰り返すとなると少し手間がかかりますよね。
このバッチファイル方式なら、最初に簡単な準備(バッチファイルの作成)さえ済ませてしまえば、あとは驚くほど簡単な操作で、何度でも個別圧縮を実行できるようになります。コマンドプロンプトを直接使う必要もありません。
ここでは、その中でも特に直感的で使いやすい「ドラッグ&ドロップ」方式を採用します。
圧縮したいファイルやフォルダーを選んで、これから作成するバッチファイルのアイコン上にポンとドラッグ&ドロップするだけ。
たったそれだけで、自動的に個別のZipファイルが元の場所に作成されるのです。
ここでは、そのバッチファイルの作り方から、実際の使い方まで、実際の画面を使いながらわかりやすく解説していきます。
まず、Windowsに標準で入っている「メモ帳」アプリを開いてください。

メモ帳に以下のバッチのコードを貼り付けてください。
@echo off
setlocal EnableExtensions
:next
if "%~1"=="" goto :done
rem フルパス化(D&D/相対パス両対応)
set "P=%~f1"
rem 引数は環境変数経由($env:P)で PowerShell へ渡す
powershell -NoProfile -ExecutionPolicy Bypass -Command ^
"$ErrorActionPreference='Stop';" ^
"$p = $env:P;" ^
"$item = Get-Item -LiteralPath $p;" ^
"if ($item.Extension -ieq '.zip') { return };" ^
"$base = if ($item.PSIsContainer) { $item.Name } else { ('{0}_{1}' -f $item.BaseName, $item.Extension.Trim('.')) };" ^
"$dir = if ($item.DirectoryName) { $item.DirectoryName } else { (Get-Location).Path };" ^
"$zip = Join-Path $dir ($base + '.zip');" ^
"$n = 1;" ^
"while (Test-Path -LiteralPath $zip) { $zip = Join-Path $dir ('{0}({1}).zip' -f $base, $n); $n++ };" ^
"Compress-Archive -LiteralPath $item.FullName -DestinationPath $zip -Force;"
shift
goto :next
:done
pause
バッチのコードを貼り付けたら、メモ帳の左上にある「ファイル」をクリックし、メニューから「名前を付けて保存」を選択してください。
※キーボードショートカットCtrl+Shift+Sでも名前を付けて保存できます。

「名前を付けて保存」を選択すると、ファイルを保存するためのウィンドウが表示されます。
このウィンドウでは以下の設定を行います。
- 保存場所: 保存したいフォルダに移動します。
- ファイルの種類: 「ファイルの種類(T):」で「すべてのファイル ('.')」を選択します。
- ファイル名: 好きな名前を入力し、末尾に必ず「.bat」を付けます(例:「圧縮.bat」)。
最後に右下にある「保存(S)」ボタンをクリックしてください。

「保存(S)」ボタンをクリックすると、指定した場所にバッチファイル(末尾が.batのファイル)が保存されます。
もし末尾に .txt などが付いていたら、ファイル名を編集して削除してください。
拡張子の確認ができたら、圧縮したいファイルやフォルダを選択し(複数選択も可能です)、作成した「〇〇.bat」ファイルのアイコン上にドラッグ&ドロップしてください。
ファイルをドロップすると、黒いコマンドプロンプト画面が表示され、圧縮処理が自動で開始されます。

圧縮処理が完了すると、コマンドプロンプトの画面に「続行するには何かキーを押してください」と表示されます。
任意のキーを押し、コマンドプロンプトのウィンドウを閉じてください。

コマンドプロンプトのウィンドウを閉じたら、フォルダー内に元のファイルやフォルダに対応した.zip ファイルが個別に作成されているか確認してください。
元のファイルやフォルダーは削除されずにそのまま残っています。
フォルダーは フォルダー名.zip、ファイルは ファイル名_拡張子.zipという名前で圧縮されているはずです。(もし同名のZipファイルが既に存在した場合は、末尾に(1) や(2) といった連番が自動で付加されます。)

複数のファイル・フォルダーを個別にZip圧縮する方法に関するよくある質問と答え
複数のファイル・フォルダーを個別にZip圧縮する方法に関するよくある質問と答えをまとめました。
その他Windows11に関する記事
その他のWindows11に関する記事はこちらです。ぜひご覧ください。
-
Windows11
【Windows11】エクスプローラーでファイルのプレビューが表示されない原因と対処法
この記事では、Windowsのエクスプローラーで、画像やPDFなどのファイルがプレビューウィンドウに表示されない原因と、その具体的な対処法を、実際の画面を使いながらわ... -
Windows11


【Windows11】デスクトップのアイコンが勝手に移動する原因と解決策をわかりやすく解説
Windows11でデスクトップのアイコンが勝手に移動してしまい、「せっかく整理したのにまたバラバラ…」と悩んでいませんか? 実は、このトラブルの多くは「アイコンの自動... -
Windows11


Windows11でIE(インターネットエクスプローラー)を起動する方法
こんな人にオススメの記事です IE(インターネットエクスプローラー)を使う必要がある人 Windows11でIE(インターネットエクスプローラー)を起動する方法を知りたい人... -
Windows11


【Windows11】ネットワーク上のデバイスが表示されない原因と対処法
この記事では、Windows11で、同じネットワーク上にあるはずのPCやプリンター、NASといったデバイスが表示されない場合の原因と対処法を分かりやすく解説します。 「急い... -
Windows11


Windows11 24H2を今すぐダウンロードしてアップデートする方法
こんな人にオススメの記事です Windowsアップデートを待たずにWindows11 24H2をインストールしたい人 今すぐWindows11 24H2にアップデートしたい人 手動でWindows11 24H... -
Windows11


【Windows11】複数ファイルを一括印刷・PDF化する2つの方法|PDF・Word・画像をまとめて出力
この記事では、Windows11の標準機能だけでフォルダー内の複数ファイルを数回のクリックで一括印刷・PDF化する2つの方法を解説します。 私自身、月末の締め日に50枚超の... -
アプリケーション


Microsoft EdgeでIEモードを使う方法-Windows11
こんな人にオススメの記事です Microsoft EdgeでIEモードを使いたい人 IEでしか表示できないページを使っている人 IEモードの使い方がわからない人 Microsoft EdgeをIE... -
Windows11


【Windows11】.NET Framework 3.5/4.8を有効にする方法
この記事では、古いソフトやゲームの実行に必要な「.NET Framework 3.5」をWindows11で有効化(インストール)する方法と、最新版の「.NET Framework 4.8」が有効になっ... -
Windows11


PCを起動した日時とシャットダウンした日時を確認する方法 Windows11
こんな人にオススメの記事です パソコンの起動/終了のログ(履歴)を確認したい人 パソコンを最後に起動した日時を確認したい人 イベントビューアーの便利な使い方を知...
最後までご覧いただき、ありがとうございました。
記事の内容は独自検証に基づくものであり、MicrosoftやAdobeなど各ベンダーの公式見解ではありません。
環境によって結果が異なる場合がありますので、参考のうえご利用ください。
誤りのご指摘・追記のご要望・記事のご感想は、記事のコメント欄またはこちらのお問い合わせフォームからお寄せください。個人の方向けには、トラブルの切り分けや設定アドバイスも実施します。
※Microsoft、Windows、Adobe、Acrobat、Creative Cloud、Google Chromeほか記載の製品名・サービス名は各社の商標または登録商標です。












コメント
コメント一覧 (7件)
1個なら圧縮されるが
複数だと処理されませんでした
ご連絡ありがとうございます!
ドラッグ・アンド・ドロップのバッチファイルでしょうか?
Windows11でpdfとExcelファイルを同時に試してみたところ、今現在も動作しました
もしよければファイルの種類や個数を教えていただけますでしょうか
ごめんなさいbatの話です
win11で、一つのフォルダのサイズが120Mほど
中身はCADファイルやテキスト、PDF等で約6個ほど
いろいろ試したのだけれどあるパターンの日本語が入るとダメだと判明
(分割だけ)・(最新)などがあると1個でもだめ
もっと調べたら()半角括弧がだめっぽい
ないやつだけ集めたら幾つでもいけました。
まぁ私の環境だけかもしれないけれど、BATの言語に干渉しちゃうのかな?
回避方法ってあるかしら、一括名前変更しないとだめかな?
方法なく、そちらでも再現できたのならば、注意書き追加を
そんなことが!
私の環境でも確かに半角の()がコマンドの中身に巻き込まれておりました、、、
先ほど記事を更新して新しいバッチファイルの中身にしました!
ぜひお試しください
------------------------------------------------
@echo offsetlocal EnableExtensions
:next
if "%~1"=="" goto :done
rem フルパス化(D&D/相対パス両対応)
set "P=%~f1"
rem 引数は環境変数経由($env:P)で PowerShell へ渡す
powershell -NoProfile -ExecutionPolicy Bypass -Command ^
"$ErrorActionPreference='Stop';" ^
"$p = $env:P;" ^
"$item = Get-Item -LiteralPath $p;" ^
"if ($item.Extension -ieq '.zip') { return };" ^
"$base = if ($item.PSIsContainer) { $item.Name } else { ('{0}_{1}' -f $item.BaseName, $item.Extension.Trim('.')) };" ^
"$dir = if ($item.DirectoryName) { $item.DirectoryName } else { (Get-Location).Path };" ^
"$zip = Join-Path $dir ($base + '.zip');" ^
"$n = 1;" ^
"while (Test-Path -LiteralPath $zip) { $zip = Join-Path $dir ('{0}({1}).zip' -f $base, $n); $n++ };" ^
"Compress-Archive -LiteralPath $item.FullName -DestinationPath $zip -Force;"
shift
goto :next
:done
pause
対応ありがとうございます!
動作確認しました
以前はソフトを入れていたのですが、やはりバッチが楽ですね
重ねて、ありがとうございます
解決して良かったです!
ご指摘ありがとうございました、バッチも進化できました