WindowsのBATからPhotoshopのドロップレットを呼び出す場合は、選択したPSDのパスを引数として渡します。この記事の例は、BATに渡されたファイルだけを1件ずつ呼び出します。起動時のカレントフォルダーにあるPSDを列挙する処理は含みません。
単に画像を一括加工するなら、作成済みドロップレットへ直接ドラッグする方法でも足ります。BATは、入力ファイルの確認やWindows側の処理と組み合わせたい場合に使います。Photoshop内の保存設定は、アクションとバッチの入出力設定で先に確認してください。
2026年10月3日に、Windowsのcmd.exeと引数を記録する専用プログラムで、このBATの引数処理を16項目確認しました。ドロップレットによるPhotoshop操作・画像出力は未検証です。以下の画像寸法は練習の期待値であり、今回のPhotoshop出力結果ではありません。
1. コピー画像でドロップレットを用意する
まず、自作画像のコピーで単独再生できるアクションを用意します。原本、処理用コピー、記録時の保存先、今回の出力先を分け、出力先には空のフォルダーを使ってください。原本を上書きする「保存して閉じる」は、この練習では使いません。
- たとえば400×200pxと200×400pxの異なる画像を、処理用のPSDとして別名で保存します。同名のPSDを別フォルダーから同じ出力先に送ると衝突するため、最初は固有の名前を使います。
- 開いている画像の幅を200pxに変更し、JPEGの「別名で保存」と「閉じる」を記録します。再サンプルと縦横比固定を確認します。この設定では、期待寸法はそれぞれ200×100pxと200×400pxです。長辺を200pxにする設定とは異なります。
- Photoshopの[ファイル]→[自動処理]→[ドロップレットを作成]を選び、今回のセットとアクションを指定します。
- 保存名をPracticeDroplet.exeとします。BATと同じフォルダーに保存します。
- 出力先を専用フォルダーに設定し、記録済みの「別名で保存」の名前とフォルダーを置き換えるオプションを使います。名称は版によって「“別名で保存”コマンドを省略」などと表示されます。保存処理そのものを消す設定ではありません。
- PSDのコピーをまず1つ、ドロップレットに直接ドラッグして、出力JPEGを開き直します。寸法、画像内容、保存先、原本が変わっていないことを確認してからBATに進みます。
「開く」コマンドを無視する設定は、アクションに「開く」が記録されているかで判断します。記録時の特定ファイルを開き直してしまう場合は、この設定と記録内容を確認してください。最初から開いた画像を加工するアクションに、機械的にチェックを入れる手順にはしません。
作成手順はAdobeのドロップレット作成の説明、保存と「開く」の条件はバッチ・ドロップレットの処理オプションに基づきます。
2. 指定したPSDだけを渡すBAT
次の内容をRunDroplet.batとして保存します。コードはASCII文字だけなので、文字コードを変えるためのchcpは不要です。実際の拡張子が.batになっていることを確認してください。同じフォルダーに置いたPracticeDroplet.exeを呼び出します。ドロップレット名を変えた場合は、3行目の名前も合わせます。
@echo off
setlocal DisableDelayedExpansion
set "droplet=%~dp0PracticeDroplet.exe"
if not exist "%droplet%" goto no_droplet
if "%~1"=="" goto no_input
set "dispatched=0"
:next
if "%~1"=="" goto done
if /i not "%~x1"==".psd" goto unsupported
if not exist "%~f1" goto missing
if exist "%~f1\" goto unsupported
start "" /wait "%droplet%" "%~f1"
if errorlevel 1 goto launch_error
set /a dispatched+=1 >nul
shift
goto next
:done
echo Requested %dispatched% file(s). Inspect Photoshop output.
exit /b 0
:no_droplet
echo Droplet not found: "%droplet%"
exit /b 2
:no_input
echo Drag PSD files onto this BAT file.
exit /b 2
:unsupported
echo Expected a PSD file: "%~1"
exit /b 2
:missing
echo File not found: "%~f1"
exit /b 2
:launch_error
echo Launch failed: "%~f1". Earlier files may have been dispatched.
exit /b 3
PSDのコピーを1つ、または複数選択してRunDroplet.batへドラッグします。引数のフルパスを引用符で囲み、shiftで次の入力へ移るため、カレントフォルダーに依存せず、渡された順に処理を要求します。フォルダー、PSD以外、存在しないパスでは停止します。
Microsoftのstartの仕様に合わせ、最初の空の引用符はウィンドウタイトル、次の引用符は実行ファイルのパスに使います。/waitは呼び出したプロセスの終了待ちです。Photoshop側での保存完了や、画像の正しい変換結果を保証するものではありません。
遅延環境変数展開を無効にし、サブルーチン呼び出しによる引数の再展開も避けています。ただし、別のBATのcallやコマンド文字列の生成を経由すると、その呼び出し元の展開規則が適用されます。この例の確認範囲は、通常のパス、空白、日本語、単独の!・%・^・&を含む名前、大文字の.PSDと複数入力です。あらゆる特殊文字列や長いコマンドラインの対応を保証するものではありません。
終了コード0は、呼び出しがエラーなく戻ったことを示します。2はドロップレット・入力の不足や対象外、3は呼び出し先が失敗を返した場合です。途中で停止しても、それより前の入力は既に渡されていることがあります。出力ファイルは自動で取り消されません。
3. 「送る」にはBATへのショートカットを置く
エクスプローラーの「送る」から使う場合は、BATとドロップレットを同じ作業フォルダーに置いたまま、RunDroplet.batへのショートカットをSendToに配置します。Windows+Rでshell:sendtoを開き、作成したショートカットを置いてください。この操作は未検証なので、最初は少数のコピーで引数と出力を確認します。
このコードの%~dp0はBAT自体の保存場所です。BATだけをSendToへ移すと、PracticeDroplet.exeもSendToにあるものとして探してしまいます。ショートカットの作業フォルダーを変えても、%~dp0の参照先は変わりません。
4. 呼び出しと画像出力を分けて確認する
| 症状 | 確認する箇所 |
|---|---|
| Droplet not found | BATとEXEの場所、3行目の名前、実際の拡張子 |
| PSDを選んだのに対象外・見つからない | 渡されたパス、拡張子、移動済みファイル、フォルダーを選んでいないか |
| 単独ドロップでも失敗する | アクション内のレイヤー名・素材・記録済みの「開く」、入力の色モード |
| BATが終了したのにJPEGがない | Photoshopのダイアログ、処理継続の有無、「別名で保存」の記録、実際の保存先 |
| 2件送ったのに同じ画像・1件しかない | 固定の入力ファイルを開いていないか、同名出力の上書きがないか |
実画像の確認では、まず空の出力先へ1件、次に内容の違う2件を送ります。JPEGを開き直し、枚数・内容・寸法・名前を照合します。原本と処理用PSDの変更も確認してください。BATのRequestedという表示だけで、この確認を済ませたことにはできません。
旧コードと配布記録
旧記事のコードはカレントフォルダーの*.psdを列挙しており、「送る」で選んだPSDを使う説明と一致していませんでした。下に原文を参照用で残しています。冒頭に余分な文字が入ったテスト例や、特定ユーザーのパスを含むため、そのまま実行しないでください。
旧コード3例(参照用・実行しない)
%USERPROFILE%\AppData\Roaming\Microsoft\Windows\SendTobatコピーする編集する@echo off
echo "%~dp1%~n1.psd"
pause@echo off
setlocal enabledelayedexpansion
for %%F in (*.psd) do call :sub "%%F"
goto :EOF
:sub
C:\Users\min\Desktop\グレーアウト.exe "%~dp1%~n1.psd"
goto :EOF既存GitHubの01.shは旧例の配布記録です。リポジトリーの内容は今回更新していません。現在のWindows用BATは、上のRunDroplet.batのコードを使ってください。
セットの外部保存はATNの保存・読み込み、キーからの単独再生はアクションのショートカット設定、JSXからの読み込み・再生はATNを読み込むJSXで確認できます。全体の操作一覧はPhotoshopの総合案内にまとめています。
