You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何使用PowerShell获取网站链接的完整URL?——解决GIMP最新版本下载链接获取问题

如何在PowerShell中获取GIMP最新版本的完整下载URL?

我尝试从GIMP官网获取最新版本的下载URL,编写了如下PowerShell脚本,但仅返回链接名称,不知如何获取完整的URL值。脚本内容如下:

$web = Invoke-WebRequest -Uri "https://download.gimp.org/pub/gimp/v2.10/windows/"
$web.Links | Where-Object href -like '*exe' | select -Last 1 | select -expand href

上述代码返回的是链接名称(gimp-2.10.32-setup.exe),但我需要的是完整的URL值(https://download.gimp.org/pub/gimp/v2.10/windows/gimp-2.10.32-setup.exe),请指导我该如何操作。

解决方案

问题出在你提取的href属性是相对路径,而非完整的绝对URL。好在PowerShell的Invoke-WebRequest返回的链接对象自带了AbsoluteUri属性,它会自动帮你把相对路径和网页的基础URL拼接成完整地址。

修改后的脚本如下:

$web = Invoke-WebRequest -Uri "https://download.gimp.org/pub/gimp/v2.10/windows/"
$web.Links | Where-Object href -like '*exe' | Select-Object -Last 1 -ExpandProperty AbsoluteUri

额外说明

如果你想手动拼接(比如需要自定义处理路径的场景),也可以这样操作,但要注意确保基础URL末尾带有斜杠,避免出现路径拼接错误:

$baseUrl = "https://download.gimp.org/pub/gimp/v2.10/windows/"
$web = Invoke-WebRequest -Uri $baseUrl
# 获取相对路径
$relativeLink = $web.Links | Where-Object href -like '*exe' | Select-Object -Last 1 -ExpandProperty href
# 拼接成完整URL
$fullDownloadUrl = $baseUrl + $relativeLink
# 输出结果
Write-Output $fullDownloadUrl

不过更推荐使用AbsoluteUri,它能自动处理各种复杂的相对路径情况(比如以../开头的上级目录链接),比手动拼接更可靠。

内容的提问来源于stack exchange,提问作者atefeh kasiri

火山引擎 最新活动