我目前在PowerShell中找到多个条件时遇到问题。我正在查询文本文件,我正在寻找一个特定的名称,以及一个特定的变量。我也试图通过文本文件从上到下的方法工作。
文本文件如下所示:
Name1:
Nonsense
VariableA
VariableB
Nonsense
VariableC ==
Name2:
VariableA
Nonsense
VariableB ==
VariableC
我正在尝试运行查询以首先找到Name2,然后找到包含“Variable”和“==”运算符的下一行。但是,我不知道从哪里开始这些条件。如果有人能指出我正确的方向,我会很感激。
谢谢!
答案 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"之后匹配。