2014-09-24 72 views
0

我目前在PowerShell中发现多个条件的问题。我正在查询一个文本文件,并且正在寻找一个特定的名字以及一个特定的变量。我也试图通过文本文件从上到下的方式工作。Powershell多个搜索/条件查询

文本文件看起来是这样的:

Name1: 
Nonsense 
VariableA 
VariableB 
Nonsense 
VariableC == 

Name2: 
VariableA 
Nonsense 
VariableB == 
VariableC 

我想运行一个查询,先找到名称2,然后找到包含两个“变量”和“==”操作符的下一行。但是,我不知道从哪里开始使用这些条件。如果任何人都可以指出我正确的方向,我将不胜感激。

谢谢!

回答

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]*?(包括换行符的任何字符的最短匹配)确保单词“Name2”之后的单词“Version”的下一次出现匹配。

+0

工作就像一个魅力Ansgar。谢谢 :) – icehac 2014-09-24 19:15:18