我在报废微软网站工作,我想获取SQL产品名称,如“SQL版本2012”使用他们的版本“11.0.6607.3”。
基本上我想用他们的版本搜索他们的产品名称。使用invoke-webrequest帮助我使用powershell。
先谢了
这是我曾经尝试过的
$url = "https://learn.microsoft.com/en-us/troubleshoot/sql/releases/download-and-install-latest-updates"
$html.content = Invoke-WebRequest -Uri $url
# Find the table rows (tr) in the HTML
$rows = ($html.content).ParsedHtml.getElementsByTagName('tr')
# Define the version number to search for
$searchVersion = '11.0.5058.0'
# Loop through the rows and find the matching version number
foreach ($row in $rows) {
$cells = $row.getElementsByTagName('td')
if ($cells.Count -gt 1 -and $cells[1].innerText -match $searchVersion) {
# The version number is found in the second cell of the row
# Output the SQL Server version from the first cell of the same row
Write-Output $cells[0].innerText
break # Exit the loop after the first match is found
}
}
1条答案
按热度按时间xdyibdwo1#
这里有一个快速和肮脏的方法来做这件事(没有错误处理),工作与该网址 * 今天 *,但它是脆弱的,可能会打破,如果页面布局的变化。..
最好使用像HTML Agility Pack这样的适当的HTML解析器库,但是对于像这样的简单用例,使用基本的字符串搜索就足够了。
请注意,
ParsedHtml
属性在PowerShell“核心”中不可用,因此如果您正在编写新代码,如果您避免使用它并添加-UseBasicParsing
开关,即使您目前针对的是Windows PowerShell,它也会更加面向未来。由于SQL Server并不经常获得新版本,因此在脚本中硬编码一个哈希表来进行查找可能会更好。..