以下は、異なるフォルダをチェックし、最新のログファイルをチェックし、最新の3つのタイムスタンプ([
と表示)を使用するコードの簡略版です。For Eachループの結果が単一の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