我想要一个powershell脚本从web archive下载最新的AMD64安装程序。
我有这个,其中URL是硬编码的:
$src = 'https://repo.saltstack.com/windows/Salt-Minion-2015.8.5-AMD64-Setup.exe'
$dst = $env:temp+'\Salt-Minion-2015.8.5-AMD64-Setup.exe'
# Download installer
Invoke-WebRequest $src -OutFile $dst
# Install
& $dst /S /master=salt /minion-name=$env:computername /start-service=1
# Remove installer
Remove-Item $dst
如何检索最新的安装程序并将$src
设置为其网址?
我已经想出如何列出所有文件和文件夹:
Invoke-WebRequest -UseBasicParsing 'https://repo.saltstack.com/windows' | select -ExpandProperty Links | select href
输出:
...
...
...
Salt-Minion-2015.8.5-AMD64-Setup.exe
Salt-Minion-2015.8.5-AMD64-Setup.exe.md5
Salt-Minion-2015.8.5-x86-Setup.exe
Salt-Minion-2015.8.5-x86-Setup.exe.md5
archive/
dependencies/
...但是,如何在文件名中使用AMD64
而不是.md5
提取最后一个文件?
答案 0 :(得分:0)
这对我有用:
# Find latest installer
$url = 'https://repo.saltstack.com/windows/'
$site = Invoke-WebRequest -UseBasicParsing -Uri $url
$table = $site.links | ?{ $_.tagName -eq 'A' -and $_.href.ToLower().Contains('amd64') -and $_.href.ToLower().EndsWith("exe") } | sort href -desc | select href -first 1
$filename = $table.href.ToString()
# Download installer
$src = $url + $filename
$dst = $env:temp + '\' + $filename
Invoke-WebRequest $src -OutFile $dst
# Install
& $dst /S /master=salt /minion-name=$env:computername /start-service=1