Powershell多搜索/条件查询

时间:2014-09-24 18:49:12

标签: powershell search

我目前在PowerShell中找到多个条件时遇到问题。我正在查询文本文件,我正在寻找一个特定的名称,以及一个特定的变量。我也试图通过文本文件从上到下的方法工作。

文本文件如下所示:

Name1:
Nonsense
VariableA
VariableB
Nonsense
VariableC ==

Name2:
VariableA
Nonsense
VariableB ==
VariableC

我正在尝试运行查询以首先找到Name2,然后找到包含“Variable”和“==”运算符的下一行。但是,我不知道从哪里开始这些条件。如果有人能指出我正确的方向,我会很感激。

谢谢!

1 个答案:

答案 0 :(得分:1)

这样的事情应该有效:

PS C:\> $txt = Get-Content 'C:\path\to\your.txt' | Out-String
PS C:\> $txt
Name1:
Nonsense
VariableA
VariableB
Nonsense
VariableC ==

Name2:
VariableA
Nonsense
VariableB ==
VariableC
PS C:\> $txt -match 'Name2[\s\S]*?(Variable.*?==)'
True
PS C:\> $matches[1]
VariableB ==

Variable.*?==匹配"变量"然后是" =="在同一行的某个地方(表达式.*?匹配除换行符之外的任何内容)。前面的表达式[\s\S]*?(包括换行符在内的任何字符的最短匹配)确保下一个出现的单词" Version"在" Name2"之后匹配。