我是Power Shell(HTML)的初学者,我需要一些帮助。我想从McAfee website获取一个变量。在此页面中,有一个表,您可以在其中下载最新的.dat
文件。
我只需要第一个表的版本号-现在是8963(下载V2病毒定义更新(DAT)),并且此结果需要保存在变量中,因为我想将其与另一个脚本中的其他变量进行比较。 现在,我可以使用所有数据查询所有表:
$r = Invoke-WebRequest -Uri https://www.mcafee.com/enterprise/en-us/downloads/security-updates.html
$r.parsedhtml.getelementsbytagname("TR") |
% { ( $_.children | ?{ $_.tagName -eq "td"} | % innerText ) }
Write-Host
不幸的是,这对我来说是太多信息,因为列出了表中的所有数据。
图中检索的数据:data
感谢您的帮助。
答案 0 :(得分:0)
这不是最干净的方法,但是如果您希望始终输入的第一个条目是提供所需.exe文件名的条目,则可以使用以下方法:
($r.parsedhtml.getelementsbytagname("TR") |% { ( $_.children | ?{ $_.tagName -eq "td"} | % innerText ) } | Select-Object -First 1).Split('xdat')[0]
这基本上是获取查询的第一个字符串,在xdat
的位置拆分字符串,然后获取xdat
之前的所有内容。
输出为8963
。
如果您想以更正确的方式进行操作,则应注意寻找要过滤的正确html属性。