下面是我用來檢查不同文件夾,檢查最近日誌文件,然後報告最近3個時間戳(用[
表示)的代碼的簡化版本。ForEach循環生成單個HTML表格
$LogLocations = "C:\Powershell\Test\Scenario1",
"C:\Powershell\Test\Scenario2"
$style = @"
<style>BODY{font-family: Arial; font-size: 10pt;}
TABLE{border: 1px solid black; border-collapse: collapse;}
TH{border: 1px solid black; background: #dddddd; padding: 5px; }
TD{border: 1px solid black; padding: 5px; }
</style>
"@
$body = ""
foreach ($logpath in $LogLocations) {
$log = Get-ChildItem -Path $logpath |
sort LastWriteTime |
select -ExpandProperty FullName -Last 1
$text = Get-Content -Path $log |
Select-String -SimpleMatch "[" |
select Line -Last 3
$body += ($text |
select Line |
ConvertTo-Html -Body "<p>Timestamps of 3 most recent files processed $log</p>" -Head $style |
Out-String)
}
$emailbody = ConvertTo-Html -PostContent $body | Out-String
$subject = "Processing Logs Error Checking at " + (Get-Date -Format g)
Send-MailMessage -From "xxxxxxxxx" -To "xxxxxxxxx" -Subject $subject -Body $emailbody -BodyAsHtml -SmtpServer "xxxxxxxxx"
結果我得到的是:
Timestamps of 3 most recent files processed C:\Powershell\Test\Scenario1\20160520163102.txt * [05/21/2016 00:37:52] [05/21/2016 00:37:52] [05/21/2016 00:37:52] Timestamps of 3 most recent files processed C:\Powershell\Test\Scenario2\20160524142045.txt * [05/24/2016 14:38:48] [05/24/2016 14:38:51] [05/24/2016 14:38:51]
這是罰款。我得到我想要的信息,只是格式不是最好的。我試圖找到一種方法將結果放在同一個表中,但無法讓代碼正常工作,我會得到錯誤,沒有結果,或可怕的格式化結果。
任何想法?我正在沿着嵌套當前foreach
聲明在另一個foreach
聲明中的表格列的路線。
這很棒,但是您可以模擬一個視覺示例,說明它在「在同一張表中顯示」時的樣子嗎?這將有助於確保答案正是你所需要的。 – gravity