如何在 select-string powershell 中提取匹配行后的特定行

how to extract specific line after matched line in select-string powershell

我想在一个块中或在匹配的字符串之后搜索文本,但不是立即搜索

例如:从 'ipconfig' 的输出中,我只想提取 WiFi 部分中的 IPv4 地址

ipconfig | sls -Pattern "Wifi" -Context 0, 4

returns 匹配的字符串和它后面的 4 行,但我只想要第 4 行和“-Pattern 'IPv4'” returns 来自所有适配器的所有 ips

如何只提取 Wifi IPv4?

Select-String 返回的输出对象将有一个 Context 属性,它又包含一个 PostContext 属性 的对象包含匹配行之后的行:

ipconfig | sls -Pattern 'Wifi' -Context 0,4 |ForEach-Object { $_.Context.PostContext[-1] }