如何使用Windows批处理文件获取Python的安装路径?

6

我需要创建一个Windows批处理脚本,该脚本可以创建并将一个特定文件移动到PYTHONPATH\Lib\distutils文件夹中。

以下是我的具体需求:

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

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


你可以尝试使用 %PYTHONPATH% 吗? - ashwinjv
不,PYTHONPATH 不存在。说实话,我不知道有哪个 Python 安装程序会创建它。基于 Windows 的 Python 安装程序都会将 Python 路径添加到 PATH 中。 - minerals
4个回答

13

由于Python已在您的PATH上,因此您可以使用功能where,该功能是Linux whereis函数的Windows类比:

> where python.exe

请点击此处查看详情。您可以将where命令的输出设置为一个变量,然后使用它(请参见此帖子)。


8
如果你只有一个python实例,可以尝试以下方法:
@ECHO OFF
FOR /f %%p in ('where python') do SET PYTHONPATH=%%p
ECHO %PYTHONPATH%

0

为什么要使用WHERE搜索python.exe,当你已经知道答案呢?它在路径环境变量中!所以你只需要扫描%path%变量。可以这样做:

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

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


0
通过在for命令的/f选项下添加"delims="值,它对我有效。
@ECHO OFF
for /f "delims=" %%p in ('where python') do SET PYTHONPATH=%%p
ECHO %PYTHONPATH%

结果:

结果:

C:\TEMP>pypathtest.bat
C:\Program Files (x86)\Python38-32\python.exe


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接