powershell ConvertTo-Html添加类

时间:2017-11-14 14:40:38

标签: html css class powershell

我的脚本从服务器提取信息,而不是转换为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?

2 个答案:

答案 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    &#10004;</td>'

然后,您可以正常输出$ report到文件,并在标题中包含相关的CSS代码。 您将需要一些其他逻辑来查找超过4000个的值