ちょっとした自分用のスクリプトファイルを書くことがしばしばあります。管理は大ざっぱで、メンテナンス担当は自分ひとり、何度も使うという想定のスクリプトです。こういったスクリプトは書きなれた言語で手軽に実行できるように作るのが便利です。自分の場合はPHPです。この記事ではPHPを手軽に実行する方法として、“PHPファイル兼Windowsバッチファイル”という形のコードを作る方法を紹介します。作った1ファイルをエクスプローラ上でダブルクリックするだけでPHPコードが実行できるようになります。
実際の例が次です。
@echo off :: %~f0 はこのファイルのフルパスです。 :: php -f "%~f0"でこのファイルをPHPとして実行します。 php -f "%~f0" :: batファイルをエクスプローラ等から実行しても結果を画面上で読むために pause します。 pause :: ここで exit することで後の処理が bat ファイルの構文として不適切でも問題ないようにします。 exit /b <?php var_dump('PHPを実行しています'); ?>
前半部にバッチファイルとしてのコードを書き、後半部にPHPのコードを書いています。バッチファイルとしてのコードは前半部分で終わらせ最後に exit /b を入れることで、続くPHP部分(バッチファイルとして見ると不適切な構文)が無視される仕組みです。PHPはPHPタグの範囲外をただの文字列として扱うためバッチファイルのコードと干渉しません。このファイルを実行すると、まずバッチファイル部分が文字列として表示され、その後にPHPの var_dump 関数が実行されます。以上のような仕組みで、PHPコードを自由に書いて、それをダブルクリックひとつで手軽に実行できるわけです。これは次のGIFのようになります。
こういったファイルは最近だとLLM(大規模言語モデル)を使って作るのも楽です。細かい背景知識のいらない数百行以内で完結するサイズのスクリプトならば凝ったプロンプトや長いやり取りを経ずともいい感じにしてくれやすいです。