繁体   English   中英

使用 python 3 执行脚本的批处理脚本(如果可用)否则 python 2

[英]Batch Script to Execute script with python 3 if available else python 2

尝试为使用 python3 运行程序的 Windows 创建批处理脚本(如果可用)。

我知道脚本可以用$py -2 script.py和 py3 用$py -3 script.py

如果我运行py -0 ,它会返回所有的 python 版本。

我如何构建这个脚本?

我不想检查 python 目录是否可用,我更愿意以一种与 python 位置无关的方式进行检查。

不是完整的解决方案,而是一种检测安装了哪个版本的Python的方法:

您可以通过运行py -3 --version并检查批处理脚本中的%ERRORLEVEL%变量来检查是否已安装Python 3。 如果它是0,则py -3 --version是成功的,即的Python 3被安装在系统上。 如果非零,则未安装Python 3。

直接用python.exe --versionfindfindstr无效(使用python 2.7)。

构建变量并运行返回版本的python脚本,将启用此管道!

解决方案 :

@echo off
set "$py=0"
call:construct

for /f "delims=" %%a in ('python #.py ^| findstr "2"') do set "$py=2"
for /f "delims=" %%a in ('python #.py ^| findstr "3"') do set "$py=3"
del #.py
goto:%$py%

echo python is not installed or python's path Path is not in the %%$path%% env. var
exit/b

:2
echo running with PY 2

exit/b

:3
echo running with PY 3

exit/b

:construct
echo import sys; print('{0[0]}.{0[1]}'.format(sys.version_info^)^) >#.py

您可以在没有临时文件的情况下进行

set PYTHON_MAJOR_VERSION=0
for /f %%i in (python -c "import sys; print(sys.version_info[0])"') do set PYTHON_MAJOR_VERSION=%%i

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM