如何使用PowerShell从归档列表获取最新二进制版本
PowerShell脚本:获取Docker Windows静态稳定版最新Zip包信息
以下是实现需求的PowerShell脚本,可直接从指定归档页面提取最新版本号和下载链接:
# 定义归档页面URL $archiveUrl = "https://download.docker.com/win/static/stable/x86_64/" try { # 获取页面HTML内容(使用基础解析避免依赖IE引擎) $response = Invoke-WebRequest -Uri $archiveUrl -UseBasicParsing # 筛选出所有符合docker-*.zip格式的链接 $zipLinks = $response.Links | Where-Object { $_.href -match '^docker-\d+\.\d+\.\d+\.zip$' } if (-not $zipLinks) { Write-Error "未找到符合格式的Docker Zip包链接" exit 1 } # 提取每个链接的版本号并整理为对象 $versionInfo = $zipLinks | ForEach-Object { if ($_.href -match 'docker-(\d+\.\d+\.\d+)\.zip') { [PSCustomObject]@{ Version = [version]$matches[1] DownloadUrl = $archiveUrl + $_.href } } } # 按版本号降序排序,取第一个即为最新版本 $latestVersion = $versionInfo | Sort-Object Version -Descending | Select-Object -First 1 # 输出结果 Write-Host "最新Docker版本: $($latestVersion.Version)" Write-Host "下载链接: $($latestVersion.DownloadUrl)" } catch { Write-Error "请求页面失败: $_" exit 1 }
关键逻辑说明
- 页面解析:用
-UseBasicParsing参数确保脚本在无IE环境下也能正常运行,兼容性更强。 - 链接筛选:通过正则表达式精准匹配静态包文件名,排除页面中其他无关链接。
- 版本排序:将版本号转为
[version]类型,利用PowerShell内置的语义化版本排序规则,准确识别最新版本。 - 结果输出:直接输出版本号和完整下载链接,可直接对接你后续的Zip包处理脚本。
内容的提问来源于stack exchange,提问作者Vikrant Punwatkar
相关产品推荐
相关产品推荐

