我有一个批处理文件,它试图运行第一行中指定的程序。类似于 Unix 的shebang:
C:\> more foo.bat
#!C:\Python27\python.exe
%PYTHON% foo-script.py
C:\>
我想知道的是:有没有办法自动设置%PYTHON%
在C:\Python27\python.exe
shebang()之后的脚本第一行中指定的值#!
?
背景:我正在尝试这样做,以便在包装脚本中明确指定要调用的 Python 解释器(因为系统上安装了多个 Python 解释器)。
假设:您可以假设脚本已经知道它自己的文件名(foo
)并且%~dp0
是该脚本的目录。我们如何阅读不包括 shebang 的第一行?
澄清:将 C:\PythonXY 添加到 %PATH% 不是解决方案。shebang 行应该在用户机器上的安装期间进行修改(原始脚本仅在构建机器上生成).. 可能有多个相同版本的 Python 安装。并且只有 shebang 行是可修改的(这就是程序的工作方式)。