博客
关于我
Windows批处理自动检测、安装Python
阅读量:292 次
发布时间:2019-03-01

本文共 1279 字,大约阅读时间需要 4 分钟。

原理及问题:

  1. 使用注册表检测Python是否安装,检测注册表项hklm\software\Python\pythoncore是否存在指定版本信息。经试验发现该注册表项对于较早的安装包无效。
  2. 使用py -3.7 --version检测Python解释器是否正常运行,较早的安装包或者未安装python启动器将检测失败。
  3. 采用静默模式安装Python,针对所有用户安装,将Python信息加入环境变量path中。
  4. 安装文件必须与批处理文件处于同一目录
@ECHO OFFrem  检测注册表中是否有Python3.7信息。echo ----------------------------------echo 检测注册表……reg query "hklm\software\Python\pythoncore\3.7" >nul 2>nulif %errorlevel%==0 (echo 注册表检测到指定版本Python & GOTO check_python) else (echo 注册表未检测到指定版本Python!开始安装Python3.7…… & goto install_python):uninstall_pythonecho 正在卸载Python!请稍候……python-3.7.6-amd64.exe /quiet /uninstallecho 卸载Python完成!:check_pythonrem 检测运行指定版本Python是否成功。echo ----------------------------------echo 检测指定版本Python运行状况……py -3.7 --version  >nul 2>nulif %errorlevel%==0 (echo Python运行正常! & goto check_pip) else (echo Python运行异常!)pause:check_piprem 检测运行pip是否成功。echo ----------------------------------echo 检测pip运行状况……@for /f "tokens=1" %%i in ('pip --version ^| findstr /C:"pip"')  do ^set PIPVER=%%i@if "%PIPVER%" == "pip" (@echo Pip运行正常!) else echo (Pip运行异常!)pausegoto:eof:install_pythonrem 采用静默模式安装Python。echo ----------------------------------echo 开始安装Python,请稍候……python-3.7.6-amd64.exe /quiet InstallAllUsers=1 PrependPath=1if %errorlevel%==0 (echo Python3.7安装成功!& goto check_python) else echo (Python安装失败!)

转载地址:http://yjmx.baihongyu.com/

你可能感兴趣的文章
Net.Framework概述
查看>>
NET3.0+中使软件发出声音[整理篇]<转>
查看>>
net::err_aborted 错误码 404
查看>>
NetApp凭借领先的混合云数据与服务把握数字化转型机遇
查看>>
Netbeans 8.1启动参数配置
查看>>
NetBeans IDE8.0需要JDK1.7及以上版本
查看>>
NetBeans之改变难看的JSP脚本标签的背景色...
查看>>
netbeans生成的maven工程没有web.xml文件 如何新建
查看>>
netcat的端口转发功能的实现
查看>>
netfilter应用场景
查看>>
Netgear WN604 downloadFile.php 信息泄露漏洞复现(CVE-2024-6646)
查看>>
netlink2.6.32内核实现源码
查看>>
netmiko 自动判断设备类型python_Python netmiko模块的使用
查看>>
NetMizer 日志管理系统 多处前台RCE漏洞复现
查看>>
NetMizer-日志管理系统 dologin.php SQL注入漏洞复现(XVE-2024-37672)
查看>>
Netpas:不一样的SD-WAN+ 保障网络通讯品质
查看>>
netron工具简单使用
查看>>
NetScaler MPX Gateway Configuration
查看>>
NetScaler的常用配置
查看>>
netsh advfirewall
查看>>