2017-10-04 79 views
2

這似乎是一個簡單的任務,但我似乎無法使其工作。我希望能夠讀取文本文件,如果找到兩個確切的模式,則返回True。如果它只找到一個,那麼它返回false。如果在使用powershell的文本中發現兩種模式,則返回True

我試過這個,我認爲它工作,但沒有。

Get-Content $log_path | Select-String -pattern "\bInstallation of\b|\bfailed\b" -AllMatches -quiet 

我一直在尋找一段時間,並沒有發現任何工作。

感謝

回答

2

你的模式包含一個或|聲明,基本上說。

如果其中一個(安裝或失敗)存在,那麼它是匹配的。 你想要的是使用通配符,所以詞和中間詞都是相同匹配的一部分。

Select-String -pattern "\bInstallation .* failed\b" -quiet 

其他注意事項

遇到問題時,有網上正則表達式測試儀,讓您測試您的正則表達式。

即使您需要IE瀏覽器,我個人也很喜歡它,因爲它是在Silverlight中完成的,因爲它有一個用於正則表達式的分析部分,用於分解您的表達式並用您正在做的事情的文字給出解釋。

當學習或處理總是更復雜的epxressions時非常有用。

例如,你的初始正則表達式。 Initial expression

儘管我沒有親自使用它,但RegexStorm也看起來很有前途,並且不受IE限制。

+1

'-AllMatches'在這裏不相關。 –

+0

非常感謝,那就是問題所在。我在這方面花了太長時間:-)讚賞協助。 –

+0

好點@MartinBrandl。在回答之前我沒有看到它的效果。我刪除了那部分。 –

相關問題