1

如何Git for Windows使用cmdpowershell下载最新版本?(或其他内置的windows软件)

目前,我有一个脚本来检查 Windows 是否是x32 or x64

# eq is equal
# ne is not equal
if ((gwmi win32_operatingsystem | select osarchitecture).osarchitecture -ne "64-bit")
{
    #32 bit logic here
    Write "32-bit OS"
Read-Host -Prompt "Press Enter to continue"
}
else
{
    #64 bit logic here
    Write "64-bit OS"
Read-Host -Prompt "Press Enter to continue."
}

提前致谢!

4

1 回答 1

2

最简单的方法是在目标机器上使用巧克力。安装chocolatey后,一个简单的:

choco install git

下载并安装 git for windows。首先查看打包站点,如果已经打包最新版本。有时可能需要在新版本发布后几天才能发生这种情况。


如果您正在寻找手动方式从 github 下载最新版本,您可以使用 github api。

首先找出要下载的资产的名称。它们列在这里:https ://github.com/git-for-windows/git/releases/latest 。您感兴趣的资产如下所示:

Git-2.25.1-64-bit.exe
Git-<version>-<architecture>.exe 

现在将您刚刚查看的页面作为 json 对象获取。github api 为您执行此操作:https ://api.github.com/repos/git-for-windows/git/releases/latest

最后在其中找到您的资产并将下载链接传递给Invoke-WebRequest.

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$architecture = '64-bit'
$assetName = "Git-*-$architecture.exe"

$gitHubApi = 'https://api.github.com/repos/git-for-windows/git/releases/latest'
$response = Invoke-WebRequest -Uri $gitHubApi -UseBasicParsing
$json = $response.Content | ConvertFrom-Json
$release = $json.assets | Where-Object Name -like $assetName

Invoke-WebRequest $release.browser_download_url -OutFile ".\$($release.name)"

注意:根据您要使用的规模,如果您是未经身份验证的用户,您应该知道 github api 每小时只允许 60 次调用:https ://developer.github.com/v3/#rate-限制

于 2020-03-07T15:02:47.523 回答