如何使用 Windows 批处理文件获取 Python 位置?

How to get Python location using Windows batch file?

我需要创建一个 windows 批处理脚本,用于创建一个特定文件并将其移动到 PYTHONPATH\Lib\distutils 文件夹。

这是我正在尝试做的事情:

ECHO [build] >> distutils.cfg
ECHO compiler=mingw32 >> distutils.cfg
MOVE distutils.cfg PYTHONPATH\Lib\distutils

然而,PYTHONPATH 不存在,但我知道 Python 位置设置在 PATH 中,我可以检查。 我如何解析 PATH 并从中提取 Python 位置?

由于 python 在您的 PATH 中,您可以使用函数 where,它是 Linux whereis 函数的 Windows 类似物:

> where python.exe

查看详情here. You can set output of where command to a variable and then use it (see this post)。

如果你只有一个 python 实例,你可以试试这个:

@ECHO OFF
FOR /f %%p in ('where python') do SET PYTHONPATH=%%p
ECHO %PYTHONPATH%

既然知道答案,为什么还要使用 WHERE 搜索 python.exe?它在路径环境变量中!所以你需要做的就是扫描 %path% 变量。可以这样做:

echo %path% | split ; | find /i "python"

好的,这里你需要 split prog,但它很容易制作(用 C 或批处理)而且你无论如何都需要它。