我再次被PowerShell困住了。 這是我的場景: 我有一個Excel報表在裏面。在Excel文件中有兩條線,我正在尋找在excel中查找值並將其打印出來
錯誤總數= 0
致命錯誤總數= 0
與這兩條線的問題是空格後「錯誤」可能會因報告而異。另一個問題是錯誤的數量(在這種情況下爲0)在同一個單元格中。
我想要做的是找到這兩行並返回錯誤的數量。 以下是我的代碼到目前爲止的樣子。我知道它缺少一些東西,也沒有工作。我嘗試了很多沒有運氣的正則表達式。
任何幫助,將不勝感激。
謝謝大家提前。
$File = "C:\test\setup.xlsx"
$Excel = New-Object -ComObject Excel.Application
$Excel.visible = $true
$Workbook = $Excel.workbooks.open($file)
$Worksheets = $Workbooks.worksheets
$Worksheet = $Workbook.Worksheets.Item(1)
$Range = $Worksheet.UsedRange
$Keywords="fatal errors", "errors"
$Filter = "Total number of"+ ($(($Keywords|%{[RegEx]::Escape($_)}) -join "|"))
$Search = $Range.find($Filter)
IF($Search -match '\d[0]')
{
"No Errors found"
"No fatal errors found"
}
ELSE
{
"number of errors found = " $search
"number of fatal errors found = " $search
}
TheMadTechnician來拯救:) 這個作品完美。你介意給我解釋一下這裏發生了什麼?我有點從「開關」開始丟失它 $ Range.cells.value2 |其中{$ _ -match「(?:fatal)?錯誤總數\ s * = \ s *(\ d *)」} | ForEach {$ _ -like「* fatal *」} {$ FatalErrors + = $ Matches [1]; continue} 默認{$ Errors + = $ Matches [1]} – Besiktas 2014-09-11 13:13:52
希望現在有道理。 – TheMadTechnician 2014-09-11 17:03:22
它確實有意義但仍令人困惑。我想我必須玩得更多。一如既往地感謝您的幫助。 – Besiktas 2014-09-11 18:01:10