我的脚本从服务器提取信息,而不是转换为HTML并通过电子邮件发送报告。 片段:
$sourceFile = "log.log"
$targetFile = "log.html"
$file = Get-Content $sourceFile
$fileLine = @()
foreach ($Line in $file) {
$MyObject = New-Object -TypeName PSObject
Add-Member -InputObject $MyObject -Type NoteProperty -Name Load -Value $Line
$fileLine += $MyObject
}
$fileLine | ConvertTo-Html -Property Load -head '<style> .tdclass{color:red;} </style>' | Out-File $target
当前的HTML报告摘要:
<table>
<colgroup><col/></colgroup>
<tr><th>Load on servers</th></tr>
<tr><td>Server1 load is 2442</td></tr>
<tr><td>Server2 load is 6126</td></tr>
<tr><td>Server3 load is 6443</td></tr>
<tr><td> </td></tr>
<tr><td>Higher than 4000:</td></tr>
<tr><td>6126</td></tr>
<tr><td>6443</td></tr>
</table>
这将生成一个包含tr和td表的HTML报告。 是否有任何方法可以使用生成 td,因此我可以使用样式将类名插入-head属性,并将其设置为高于4000的红色:tds?
答案 0 :(得分:0)
您可以使用Get-Help ConvertTo-Html
命令获取ConvertTo-Html
命令的所有参数。以下是输出:
ConvertTo-Html [[-Property] <Object[]>] [[-Head] <String[]>] [[-Title] <String>] [[-Body] <String[]>] [-As<String>] [-CssUri <Uri>] [-InputObject <PSObject>] [-PostContent <String[]>] [-PreContent <String[]>][<CommonParameters>]
您可以创建外部CSS文件,并在[-CssUri]
参数中提供CSS文件路径。
答案 1 :(得分:0)
我知道这是一篇旧文章,但是偶然发现它想要做类似的事情。 我可以通过替换来添加CSS样式。 这是一个示例:
$Report = $Report -replace '<td>PASS</td>','<td class="GreenStatus">PASS ✔</td>'
然后,您可以正常输出$ report到文件,并在标题中包含相关的CSS代码。 您将需要一些其他逻辑来查找超过4000个的值