【发布时间】:2010-01-27 01:09:16
【问题描述】:
我有一个批处理文件,它试图运行第一行中指定的程序。类似于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 行是可修改的(程序就是这样工作的)。
【问题讨论】:
-
为什么不将 C:\Python27 添加到 Windows PATH 环境变量中?
-
@Yada: C:\Python27 已经在 PATH 中;但是,C:\Python25、C:\Python26、C:\Python31 等也是如此。此外,此脚本的 shebang 将在安装期间修改。
标签: python windows batch-file shebang