2014-09-24 111 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