【发布时间】:2016-09-13 08:26:13
【问题描述】:
我从批处理过程中创建了以下格式的日志文件。
步骤日期时间说明 #0 09/12/2016 17:02:20 TestTableCount.ps1 从步骤 1 开始 #1 09/12/2016 17:02:21 表 etl.ProcessLog 为空。失败
我想在 PowerShell 中使用 Send-MailMessage 将其添加到电子邮件正文中。
我编写了一个代码,将文本文件转换为 HTML 并将其作为表格添加到邮件正文中。
代码:
$body = Get-Content $LogFile | out-String
$body = $body -replace '^(\S+)\s+(\S+)\s+(\S+)', '<tr><th style = "border: 1px solid black; background: #dddddd; padding: 5px;">$1</th><th style = "border: 1px solid black; background: #dddddd; padding: 5px;">$2</th><th style = "border: 1px solid black; background: #dddddd; padding: 5px;">$3</th></tr>'
$body = $body -replace '\n(\S+)\s+(\S+)\s+(\S+)', '<tr><td style = "border: 1px solid black; padding: 5px;">$1</td><td style = "border: 1px solid black; padding: 5px;">$2</td><td style = "border: 1px solid black; padding: 5px;">$3</td></tr>'
$body = '<body><table style = "border: 1px solid black; border-collapse: collapse;">' + $body + '</table></body>'
但这会导致以下格式:
我希望状态和时间出现在 DateTime 列下,但从我编写的代码中,我得到了描述下的时间。
如何纠正这个问题并获得正确的格式?
【问题讨论】:
-
既然您正在生成此日志文件,为什么不将其生成为 .csv 并免费获得您正在做的大部分事情呢?然后您也可以为您的表格使用一种样式,而不是将其嵌入到复杂的替换中。
标签: html powershell