最初の行で指定されたプログラムを実行しようとするバッチ ファイルがあります。Unix のshebangに似ています:
C:\> more foo.bat
#!C:\Python27\python.exe
%PYTHON% foo-script.py
C:\>
私が知りたいのは、シバン ( ) に続くスクリプトの最初の行で指定されているものを自動的に設定%PYTHON%
する方法はありますか?C:\Python27\python.exe
#!
背景: ラッパー スクリプトで (システムに複数の Python インタープリターがインストールされているため) 呼び出す Python インタープリターを明示的に指定するために、これを実行しようとしています。
前提foo
: スクリプトは、それ自体のファイル名 ( ) を既に認識しており%~dp0
、このスクリプトのディレクトリであると想定できます。シバンを除いた最初の行をどのように読みますか?
明確化: C:\PythonXY を %PATH% に追加することは解決策ではありません。シバン行は、ユーザーのマシンでインストール時に変更されることになっています (元のスクリプトはビルド マシンでのみ生成されます)。これには、同じバージョンの Python が複数インストールされている可能性があります。そして、シバン行のみが変更可能です (これがプログラムの動作です)。