我尝试使用PowerShell从Python网站下载Python 3安装程序到特定目录,然后静默运行/安装。exe,然后将相应目录添加到系统的PATH变量中。
到目前为止,我提出了:
start cmd /k powershell -Command "(New-Object Net.WebClient).DownloadFile('https://www.python.org/ftp/python/3.6.2/python-3.6.2.exe', 'C:/Tools/python-3.6.2.exe')" &&
c:\Tools\python-3.6.2.exe /quiet InstallAllUsers=1 PrependPath=1 Include_test=0 TargetDir=c:\Tools\Python362 &&
setx path "%PATH%;C:\Tools\Python362\" /M
不幸的是,这不起作用。命令窗口将打开,然后立即退出。我已经分别运行了这些命令中的每一个,当我这样做时,它们都可以工作,但是当我试图在同一个文件中顺序运行它们时,它不起作用。任何帮助将是非常感谢。
注意:我认为问题源于&&
的使用,因为如果我使用&
,CMD提示符将持续存在并执行。然而,这对我没有帮助,因为我需要在第一个命令完成后执行第二个命令,否则就没有了。exe以运行第二个命令。我希望这只是一个语法错误,因为我是非常新的创建批处理文件和工作与windows命令行。
3条答案
按热度按时间piah890a1#
我个人会在PowerShell中完成这一切。
我很想把它写进一个脚本里,就像这样:
然后你可以从cmd调用脚本。exe像这样:
Param()
块定义了Python版本的默认值、下载它的URL、保存它的位置和安装它的位置,但是如果有用的话,可以覆盖这些选项。你可以像这样传递这些参数:也就是说,你完全可以在纯Powershell中做一个单行程序。从你的描述中,我认为你不应该需要做
start cmd /k
前缀-你应该能够只调用PowerShell。直接执行,像这样:y1aodyip2#
在PowerShell中完成这一切,包括安装库。
sqougxex3#
下面是我为windows准备的一些东西,用于检查endoflife.date/api的最新python版本,在C上下载它:驱动并包含Python到用户的路径: