この記事では、Windows11で複数のファイルやフォルダーを個別にZIP圧縮する方法を解説します。ブラウザツールを使ってパスワード付きZIPを個別に作成する方法から、コマンドやバッチファイルを使った一括自動化まで、追加ソフト不要で実現できる3つの方法を紹介します。
「たくさんのファイルを一つひとつ個別のZIPに圧縮するのが面倒」「コマンドやバッチファイルで自動化できないかな?」と感じていませんか?
情シスとして社内PCのサポートをしていると、「取引先に送るファイルを一件ずつZIPに圧縮してパスワードをかけたい」「毎月同じフォルダーを個別に圧縮する作業を自動化したい」といった相談をよく受けます。こうした作業は、適切なツールや方法を選べば大幅に効率化できます。
この記事では、パスワード付きZIPをブラウザだけで作成する方法、コマンドで一括処理する方法、バッチファイルでドラッグ&ドロップ自動化する方法の3つを、実際の画面を見ながら詳しく解説していきます。
目次
ブラウザツールを使ってパスワード付きZIPを個別に作成する方法
パスワード付きZIPを個別に作成するには、パスワード付きZIPを作成するブラウザツールが便利です。
無料で使えて登録も不要、ファイルやフォルダーをドラッグ&ドロップしてパスワードを入力するだけで、ブラウザ内だけで処理が完結します。ファイルは外部サーバーへ送信されないため、社内の機密ファイルも安心して扱えます。
情シスの自由帳
【無料】パスワード付きZIPを作成するブラウザツール|インストール不要・ファイル送信なし | 情シスの自由...
ファイルやフォルダをブラウザ内だけでパスワード付きZIPに変換できる無料ツールです。インストール不要・登録不要で、外部サーバーへファイルを送信せずに利用できます。Z...
コマンドを使って複数のファイル・フォルダーを個別にZIP圧縮する方法
コマンドを使った個別ZIP圧縮は、バッチファイルを作成する手間なく今すぐ実行したい方に向いています。コマンドプロンプトからPowerShellのコマンドを1行実行するだけで、指定したフォルダー内のファイルやフォルダーを個別にZIPに圧縮できます。ただし、実行前にコマンド内のフォルダーパスをご自身の環境に合わせて書き換える作業が必須です。
Windowsキー+Rキーを押して「ファイル名を指定して実行」を開き、「cmd」と入力してコマンドプロンプトを起動する
- エクスプローラーで圧縮対象のファイルやフォルダーが入っている親フォルダーを右クリックし、「パスのコピー」をクリックする
- コマンド内の「C:\Users\XXXXXXXXXXXXX」の部分をコピーしたパスに書き換える
- 書き換えたコマンド全体をコピーし、コマンドプロンプトで右クリックして貼り付け、
Enterキーを押して実行する
- 元のフォルダー内にZIPファイルが個別に作成されていることを確認する
実際の画面を見ながら詳しく解説していきます。
STEP
コマンドプロンプトを立ち上げる
まず、「コマンドプロンプト」(コマンドを入力してPCを操作するための黒い画面のツール)を起動します。
コマンドプロンプトを管理者として実行する必要はありません。
ここではキーボードショートカットを使った方法を紹介しますが、Windowsの検索バー(タスクバーの虫眼鏡アイコンなど)にcmd と入力して起動する方法も簡単でおすすめです。
「ファイル名を指定して実行」から起動する手順:
- キーボードの
Windows キーを押しながらR キーを同時に押します。
これにより、「ファイル名を指定して実行」という名前の小さなウィンドウが画面に表示されます。
- 表示されたウィンドウの入力欄に、半角で
cmd と入力します。
- 入力できたら、「OK」ボタンをクリックするか、キーボードの
Enter キーを押します。
- 黒い背景に白い文字が表示される「コマンドプロンプト」のウィンドウが起動すれば、このステップは完了です。
「ファイル名を指定して実行」にcmdと入力してコマンドプロンプトを起動する
もし他の起動方法も知りたい場合や、各手順を図解付きでより詳しく確認したい場合は、以下の記事が参考になります。
情シスの自由帳
Windows11でコマンドプロンプトを開く方法 | 情シスの自由帳
こんな人にオススメの記事です Windows11でコマンドプロンプトを開く(管理者として開く)方法を詳しく解説していきます。 コマンドプロンプトとは、キーボードでコマンド...
STEP
圧縮したいファイルやフォルダーが保存されているパスを取得する
コマンドプロンプトを起動したら、次に、これからコマンドで操作する場所を指定するために、圧縮したいファイルやフォルダーがまとめて入っている親フォルダの「パス(Path)」を取得(コピー)します。
※「パス」とは、PC内でのフォルダやファイルの住所のようなものです。
- まず、
Windowsキー+Eキーでエクスプローラー(通常、ファイルやフォルダーを見るために使う画面)を開き、目的の親フォルダが保存されている場所まで移動します。
- 目的のフォルダーの上で右クリックします。
- 以下の画像で示されているように、表示されたメニューの中から「パスのコピー」という項目を探し、クリックしてください。
Windows11以降、右クリックメニューのデザインがすっきりとし、項目数も減りました。
Windows10以前の右クリックメニューに戻したい場合は、「Windows11の右クリックメニューを以前の形に戻す方法」をご覧ください。
これで、そのフォルダーのパス(例: C:\Users\YourName\Documents\WorkFiles のような文字列)がPCのクリップボード(一時的な記憶場所)にコピーされました。
対象フォルダーを右クリックして「パスのコピー」からパスを取得する
STEP
コマンドを書き換える
次に、実行するコマンドを準備します。
以下のコマンドの"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}"
パスの前後に付いている' (シングルクォート)と " (ダブルクォート)は消さないでください。
書き換えた結果、パス全体が '"あなたのパス"' の形になっているか確認してください。
(例: '"D:\作業フォルダ\圧縮したいもの"' のようになります)
「C:\Users\XXXXXXXXXXXXX」の部分を自分のフォルダーパスに書き換える
パスを正しく書き換えられたら、次の手順に進みます。
STEP
書き換えたコマンドをコマンドプロンプトに貼り付けて実行する
Step3でパスを書き換えたコマンド全体をコピーしたら、コマンドプロンプトの画面で右クリックして貼り付けてください。
もし、コピーしたコマンドをコマンドプロンプトに貼り付けられない場合は、こちらの「コマンドプロンプトでコピペできなくなった場合の対処法 」を参考に設定を変更してください。
以下の画像のようにコマンドが一行で表示されたら、そのままキーボードのEnter キーを押すと、コマンドが実行されます。
コマンドプロンプトに右クリックで貼り付けてEnterキーを押して実行する
ファイル数によっては処理に時間がかかることがあるため、しばらく待機してください。
コマンドプロンプトに元のプロンプト(例: C:\Users\YourName>)が再び表示されれば、作業完了の合図です。
STEP
ファイルが個別に圧縮されたことを確認する
フォルダー内に、元のファイルやフォルダに対応したzip ファイルが個別に作成されているか確認してください。
- フォルダーは
フォルダー名.zip、ファイルは ファイル名_拡張子.zipという名前で圧縮されているはずです。(もし同名のZipファイルが既に存在した場合は、末尾に(1) や(2) といった連番が自動で付加されます。)
- 元のファイルやフォルダーは削除されずにそのまま残っています。
元のファイルと同じフォルダー内にZIPファイルが個別に作成されたことを確認する
バッチファイルを使って複数のファイル・フォルダーを個別にZIP圧縮する方法
バッチファイルを使った個別ZIP圧縮は、繰り返し作業を自動化したい方に向いています。最初にバッチファイルを1つ作成しておけば、以降は圧縮したいファイルやフォルダーをアイコンにドラッグ&ドロップするだけで、自動的に個別のZIPファイルが作成されます。コマンドプロンプトを手動で起動する必要はありません。
- タスクバーの検索ボックスに「メモ帳」と入力し、メモ帳アプリを開く
- バッチのコードをコピーしてメモ帳に貼り付ける
- メモ帳の「ファイル」メニューから「名前を付けて保存」をクリックする
- ファイルの種類を「すべてのファイル」に変更し、ファイル名の末尾を「.bat」にして保存する
- 圧縮したいファイルやフォルダーを選択し、作成した「.bat」ファイルにドラッグ&ドロップする
- コマンドプロンプト画面に「続行するには何かキーを押してください」と表示されたら任意のキーを押す
- 元のファイルと同じフォルダーにZIPファイルが個別に作成されていることを確認する
実際の画面を見ながら詳しく解説していきます。
STEP
「メモ帳」アプリを開く
まず、Windowsに標準で入っている「メモ帳」アプリを開いてください。
タスクバーの検索ボックスに「メモ帳」または「notepad」と入力し、表示されたメモ帳アプリをクリックして起動するのが簡単です。
タスクバーの検索ボックスから「メモ帳」を検索して起動する
STEP
メモ帳にバッチのコードを貼り付ける
メモ帳に以下のバッチのコードを貼り付けてください。
@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
バッチのコードをメモ帳に貼り付ける
STEP
「ファイル」メニューから「名前を付けて保存」をクリック
バッチのコードを貼り付けたら、メモ帳の左上にある「ファイル」をクリックし、メニューから「名前を付けて保存」を選択してください。
※キーボードショートカットCtrl+Shift+Sでも名前を付けて保存できます。
「名前を付けて保存」のキーボードショートカットは、メモ帳だけでなく他の多くのWindowsソフトウェア(Office製品、Adobe製品、その他の標準アプリなど)にも用意されていることが多いです。他のソフトウェアでのショートカットについて詳しく知りたい方は、「【Windows版】「名前を付けて保存」ショートカットキー|Office/Adobe/Windows標準アプリ」をご覧ください。
「ファイル」メニューから「名前を付けて保存」をクリックする
STEP
メモ帳の内容を「.bat」ファイルとして保存する
「名前を付けて保存」を選択すると、ファイルを保存するためのウィンドウが表示されます。
このウィンドウでは以下の設定を行います。
- 保存場所: 保存したいフォルダに移動します。
- ファイルの種類: 「ファイルの種類(T):」で「すべてのファイル ('.')」を選択します。
- ファイル名: 好きな名前を入力し、末尾に必ず「.bat」を付けます(例:「圧縮.bat」)。
最後に右下にある「保存(S)」ボタンをクリックしてください。
ファイルの種類を「すべてのファイル」にしてファイル名に「.bat」を付けて保存する
STEP
圧縮したいファイルやフォルダーを「圧縮.bat」にドラッグ・アンド・ドロップ
「保存(S)」ボタンをクリックすると、指定した場所にバッチファイル(末尾が.batのファイル)が保存されます。
もし末尾に .txt などが付いていたら、ファイル名を編集して削除してください。
ファイルの拡張子が非表示の場合、「.txt」や「.bat」が見えません。
「ファイルの拡張子・隠しファイルの表示方法」を参考にファイルの拡張子を表示させてください。
拡張子の確認ができたら、圧縮したいファイルやフォルダーを選択し(複数選択も可能です)、作成した「〇〇.bat」ファイルのアイコン上にドラッグ&ドロップしてください。
ファイルをドロップすると、黒いコマンドプロンプト画面が表示され、圧縮処理が自動で開始されます。
圧縮したいファイルやフォルダーをバッチファイルのアイコンにドラッグ&ドロップする
STEP
コマンドプロンプトの画面に任意のキーを入力
圧縮処理が完了すると、コマンドプロンプトの画面に「続行するには何かキーを押してください」と表示されます。
任意のキーを押し、コマンドプロンプトのウィンドウを閉じてください。
「続行するには何かキーを押してください」と表示されたら任意のキーを押して閉じる
STEP
ファイルが個別に圧縮されたことを確認する
コマンドプロンプトのウィンドウを閉じたら、フォルダー内に元のファイルやフォルダに対応した.zip ファイルが個別に作成されているか確認してください。
元のファイルやフォルダーは削除されずにそのまま残っています。
フォルダーは フォルダー名.zip、ファイルは ファイル名_拡張子.zipという名前で圧縮されているはずです。(もし同名のZipファイルが既に存在した場合は、末尾に(1) や(2) といった連番が自動で付加されます。)
元のファイルと同じ場所にZIPファイルが個別に作成されたことを確認する
複数のファイル・フォルダーを個別にZIP圧縮する方法に関するよくある質問と答え
複数のファイル・フォルダーを個別にZIP圧縮する方法に関するよくある質問と答えをまとめました。
- Windows11で複数のファイルやフォルダーを個別にZIP圧縮するにはどうすればいいですか?
-
Windows11で複数のファイルやフォルダーを個別にZIP圧縮するには、主に3つの方法があります。パスワードを付けて個別にZIPを作成したい場合は、インストール不要・無料で使えるパスワード付きZIPを作成するブラウザツールが最も手軽です。
- ブラウザツールでファイルごとに異なるパスワードを設定できますか?
-
はい、できます。「ファイルごとに個別ZIP」モードを選択したうえで「ファイルごとに異なるパスワードを設定する」にチェックを入れると、ファイルごとに別々のパスワードを設定してZIPを作成できます。
- コマンドを使う方法とバッチファイルを使う方法は、どちらを選べばいいですか?
-
一度だけ処理したい場合や動作を試してみたい場合は、コマンドをコマンドプロンプトに直接貼り付けて実行する方法が手軽です。
毎月同じフォルダーを個別に圧縮するなど、繰り返し作業が発生する場合はバッチファイルを作成しておく方法が便利です。一度作れば、ファイルをアイコンにドラッグ&ドロップするだけで自動処理できます。
定期的な圧縮作業の自動化には、バッチファイル方式をおすすめします。
- バッチファイルとはなんですか?
-
バッチファイルとは、複数のコマンドや処理をまとめて自動実行させるためのファイルです。
拡張子が「.bat」のテキストファイルで、ダブルクリックや今回のようなドラッグ&ドロップで起動すると、書かれた処理が順番に実行されます。
プログラミングの知識は不要で、記事内のコードをコピーしてメモ帳に貼り付け、「.bat」という拡張子で保存するだけで作成できます。
- パス(Path)とはなんですか?
-
パスとは、PC内でファイルやフォルダーがどこに保存されているかを示す住所のような文字列です。
たとえば「C:\Users\YourName\Documents\WorkFiles」のように、ドライブ名から始まりフォルダー名を「\」(バックスラッシュ)でつないで場所を表します。
コマンドでZIP圧縮する際は、このパスを使って「どのフォルダー内のファイルを処理するか」をPC(コマンド)に伝えます。エクスプローラーでフォルダーを右クリックして「パスのコピー」を選ぶと、そのフォルダーのパスをクリップボードにコピーできます。
- クリップボードとはなんですか?
-
クリップボードとは、コピー(Ctrlキー+Cキー)した文字やファイルのパスなどを一時的に保存しておくWindowsの機能です。
コピーした内容はクリップボードに保存され、貼り付け(Ctrlキー+Vキー)操作でその内容を別の場所に挿入できます。
クリップボードの履歴機能を有効にすると、直近25件までのコピー履歴をWindowsキー+Vキーで呼び出せるようになります。詳しくはクリップボードの履歴を活用する方法をご覧ください。
- コマンドの内容を間違えて実行するとリスクがありますか?
-
コマンド内のフォルダーパスを間違えた場合、存在しないパスが指定されると処理がエラーになるだけで、ファイルが削除されたり壊れたりする危険はありません。
万が一のために、初めて実行するときはテスト用のフォルダーで試してみることをおすすめします。
- コマンドを実行するとき、どこを書き換えればいいですか?
-
コマンド内の「C:\Users\XXXXXXXXXXXXX」の部分を、圧縮したいファイルやフォルダーが入っている親フォルダーのパスに書き換えます。
パスはエクスプローラーで対象フォルダーを右クリックし、「パスのコピー」をクリックすると取得できます。コピーしたパスをメモ帳に貼り付けてから書き換えると、引用符の形式を崩しにくくなります。
書き換えた結果、パス全体が '"あなたのパス"'(例:'"D:\作業フォルダ\圧縮したいもの"')の形になっているか確認してください。
- コマンドを実行するとエラーになります。どこを確認すればいいですか?
-
原因として最も多いのは、パスの書き換えミスです。パス文字列そのものが間違っているか、パスを囲む引用符('や")の形式が崩れている可能性が高いです。
手順説明を読み返しながら、パスのコピー方法とコマンドへの書き換え方法が正しいか確認してみてください。
対象フォルダーのパスに全角文字や特殊文字が含まれていたり、パス全体の文字数が長すぎる場合もエラーの原因になることがあります。
- バッチファイルを作るのは難しいですか?プログラミングの知識が必要ですか?
-
いいえ、プログラミングの知識は不要です。記事内のコードをコピーしてメモ帳に貼り付け、拡張子を「.bat」にして保存するだけで作成できます。
手順通りに進めれば、PC操作に不慣れな方でも問題なく作成できます。
- バッチファイルに複数のファイルをまとめてドラッグ&ドロップしても処理できますか?
-
はい、できます。複数のファイルやフォルダーをまとめて選択してドラッグ&ドロップすると、選択したすべてのファイルが個別にZIPへ圧縮されます。
通常の利用範囲(数十〜数百ファイル程度)であれば問題なく処理できます。数千を超えるような大量のファイルを一度に渡すと、エラーや処理の遅延が発生する場合があります。
- バッチファイルはパソコンのどこに保存しておけばいいですか?
-
ドラッグ&ドロップ方式のバッチファイルは、保存場所に関係なく動作します。デスクトップや普段よく使うツールをまとめているフォルダーなど、使いやすい場所に置いてください。
- バッチファイルを実行すると「このアプリがデバイスに変更を加えることを許可しますか?」と表示されます。
-
バッチファイルはPowerShellを呼び出す処理を含んでいますが、このバッチファイル自体は管理者権限を要求しないため、通常はUAC(ユーザーアカウント制御画面)の確認画面は表示されません。ただし、社内のグループポリシーや環境によっては表示される場合があります。
- コマンドプロンプトとターミナル(Windows ターミナル)の違いは何ですか?
-
コマンドプロンプトは、Windowsに昔から搭載されている伝統的なコマンド実行ツールです。
Windowsターミナルは、Windows11に標準搭載された新しいアプリで、コマンドプロンプト・PowerShell・WSL(Windows Subsystem for Linux)などを1つのウィンドウでタブ切り替えしながら使えるのが特徴です。
この記事で紹介しているコマンドはどちらの環境でも実行できますが、コマンドプロンプトの方が操作に馴染みがある方には扱いやすいため、手順ではコマンドプロンプトを使用しています。
社内PCではWindowsターミナルが標準のターミナルアプリとして設定されている場合もありますが、コマンドプロンプトは引き続き単体でも起動・使用できます。
- 圧縮後のZIPファイルはどこに作成されますか?
-
コマンドを使う方法では、コマンドで指定した親フォルダー内に作成されます。
バッチファイルを使う方法では、ドラッグ&ドロップした元のファイルやフォルダーと同じフォルダー内に作成されます。
どちらの方法でも、元のファイルやフォルダーは削除されずそのまま残ります。
- 圧縮後のZIPファイル名はどうなりますか?
-
フォルダーの場合は「フォルダー名.zip」、ファイルの場合は「ファイル名_拡張子.zip」という名前で作成されます。
同名のZIPファイルがすでに存在する場合は、末尾に(1)や(2)といった連番が自動で付加されます。
- 「アクセスが拒否されました」というエラーで一部のファイルが圧縮できません。
-
そのファイルが他のアプリケーションで開かれている場合、アクセスが拒否されることがあります。心当たりのあるアプリを閉じてから再度試してみてください。
システムファイルや他のユーザーのファイルなど、操作に必要なアクセス権限がない場合もエラーになります。また、ファイルパス全体の文字数が長すぎる場合も原因になることがあります。
- コマンドプロンプトにコマンドを貼り付けられません。
-
コマンドプロンプトでは、初期設定によってはコピー&ペーストが無効になっている場合があります。コマンドプロンプトのタイトルバーを右クリックし、「プロパティ」から「Ctrl+Shift+C/Vをコピー/貼り付けに使用する」にチェックを入れると貼り付けできるようになります。
詳しい手順はコマンドプロンプトでコピペできなくなった場合の対処法をご覧ください。
- この方法はWindows10でも使えますか?
-
コマンドやバッチファイルで使用しているCompress-Archiveコマンドは、Windows10にも含まれています。ただし、右クリックメニューの表示など一部の操作手順がWindows11と異なる場合があります。
ブラウザツールはOSに関係なく、WindowsでもMacでもブラウザさえあれば利用できます。
- コマンドプロンプトでZIPファイルを解凍することもできますか?
-
はい、できます。Windows11のPowerShellに標準搭載されているExpand-Archiveコマンドを使うと、コマンドプロンプトからZIPファイルを解凍できます。
詳しい手順はコマンドでzip形式に圧縮・解凍する手順をご覧ください。
- 社内PCでソフトのインストールができない環境でも使えますか?
-
はい、ブラウザツールはインストール不要でブラウザだけで動作するため、ソフトのインストールが制限されているPCでも利用できます。ファイルはすべてブラウザ内で処理され外部へ送信されないため、セキュリティ面も問題ありません。
コマンドやバッチファイルを使う方法も、Windows11に標準搭載されている機能のみを使うため、追加のインストールは不要です。
最後までご覧いただき、ありがとうございました。
記事の内容は独自検証に基づくものであり、MicrosoftやAdobeなど各ベンダーの公式見解ではありません。
記事内で紹介している手順はあくまで一例です。OSのバージョンやPC環境によって操作画面・手順が異なる場合があり、目的に応じた最適な方法も環境ごとに異なります。参考のうえご利用ください。
誤りのご指摘・追記のご要望・記事のご感想は、記事のコメント欄またはこちらのお問い合わせフォームからお寄せください。個人の方向けには、トラブルの切り分けや設定アドバイスも実施します。
※Microsoft、Windows、Adobe、Acrobat、Creative Cloud、Google Chromeほか記載の製品名・サービス名は各社の商標または登録商標です。
公式情報・関連資料と検証環境
公式情報・関連資料
実行環境詳細と検証日
- OS:Windows 11 Home 25H2(64bit)
※本記事の手順は Windows11 Home / Pro / Enterpriseで共通です(ポリシーで制限された環境を除く)。
- ハードウェア:Intel(R) Core(TM) Ultra 7 155H (1.40 GHz) / 32GB RAM
- 最終検証日:2026年5月7日
コメント
コメント一覧 (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
対応ありがとうございます!
動作確認しました
以前はソフトを入れていたのですが、やはりバッチが楽ですね
重ねて、ありがとうございます
解決して良かったです!
ご指摘ありがとうございました、バッチも進化できました