如何在PowerShell中提取筛选后数据的最后一行?
PowerShell提取最后一行数据的方法
一、修改现有代码获取含'alpha'的最后一行
你可以在Select-String之后通过Select-Object -Last 1或者数组索引[-1]来获取筛选结果的最后一行,两种方式均可行:
方式1:使用Select-Object -Last 1
$r = Invoke-WebRequest "HTTP://xyz.xyz" $lines = $r.Content.Split([Environment]::NewLine) $lines | Select-String 'alpha' | Select-Object -Last 1
方式2:使用数组索引[-1]
$r = Invoke-WebRequest "HTTP://xyz.xyz" $lines = $r.Content.Split([Environment]::NewLine) ($lines | Select-String 'alpha')[-1]
二、从HTML列表中提取最后一行
针对你提供的HTML列表,有两种可靠的处理方式:
方式1:按文本直接处理
如果已将HTML内容读取为文本行,可筛选含.tar.gz的行并取最后一行:
# 假设$htmlContent是存储所有HTML行的变量 $htmlLines = $htmlContent.Split([Environment]::NewLine) ($htmlLines | Select-String '\.tar\.gz')[-1]
方式2:解析HTML结构(更精准)
利用Invoke-WebRequest自带的HTML解析功能,直接定位<li>元素并提取最后一项:
$r = Invoke-WebRequest "HTTP://xyz.xyz" # 获取所有<li>元素并取最后一个 $lastListItem = $r.ParsedHtml.getElementsByTagName('li') | Select-Object -Last 1 # 提取链接文本和href属性 $lastLinkText = $lastListItem.textContent.Trim() $lastHref = $lastListItem.getElementsByTagName('a')[0].href
内容的提问来源于stack exchange,提问作者Taqi Rizvi
相关产品推荐
相关产品推荐

