用于安装python和运行脚本的批处理文件



我正在编写一个实用程序,它可以做以下事情:

  1. 检查Python是否安装了它。如果未安装,Script会下载python并安装它。在同一会话中,它会执行python脚本

但我在这里面临一个问题,一旦脚本安装python,它就会在执行python脚本时抛出错误,因为cmd中无法识别python。但如果我再次运行相同的程序,它会很好地工作。

这里的问题是,在安装Python之后,除非我重新启动窗口,否则命令提示符不会识别Python命令。

有办法吗?

脚本是:在以下突出显示的部分出现错误

:errorNoPython
echo.
echo Error^: Python not installed
echo.
echo.
echo Downloading Python 3.7.0...
IF EXIST "%CD%python-3.7.0.exe" (
echo Found Installer at "%CD%python-3.7.0.exe"
) ELSE (
powershell -Command "& {[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12, [Net.SecurityProtocolType]::Tls11, [Net.SecurityProtocolType]::Ssl3, [Net.SecurityProtocolType]::Tls; Invoke-WebRequest -Uri 'https://www.python.org/ftp/python/3.7.0/python-3.7.0.exe' -OutFile '%CD%python-3.7.0.exe';}"
echo Python download completed.
)
echo Installing Python...
powershell %CD%python-3.7.0.exe /quiet InstallAllUsers=0 PrependPath=1 Include_test=0 TargetDir=c:PythonPython370
setx path "%PATH%;C:PythonPython370"
timeout /t 30 /nobreak > nul
echo Python Installation completed.
echo Installing python dependencies.
**start cmd /k python -m pip install requests
start cmd /k python -m pip install pyjavaproperties**

为了重新加载环境,您必须关闭并打开cmd.exe

因此,为了绕过它,你可以set路径和setx

按原样复制,但这将设置当前环境中的路径:

setx path "%PATH%;C:PythonPython370"
set "path=%PATH%;C:PythonPython370"

最新更新