converto-html打破了表格,尝试使用PSobject作为输入

时间:2016-08-01 11:19:13

标签: powershell azure

我在Azure上使用Converto-HTML获得了一个奇怪的输出,如下所示: 我正在尝试构建一个HTML并将其传输到Converto-HTML并发送带有样式的电子邮件。输出是带有标题列的表,其值为“*”,数据行列值为146或189或排序。

脚本

 $applicationtable1 = "< table>< th>Application Name< /th>< th>Requested By< /th>< th>Requested Date< /th>< /tr>"
 $applicationtable1 += "< tr>< td> hi < /td>< td> hi < /td> < td> hi < /td>< /tr> < /table>"
$applicationtable1
$Body = New-Object PSObject 
$Body | Get-Member #validating proper ps object
 $Body = $applicationtable1

 $htmlBody = $Body | ConvertTo-HTML | out-string

 write-host $htmlBody

输出

*

146

本地输出

PS C:\Users\292883> $Body = New-Object PSObject

PS C:\Users\292883> $Body = $applicationtable1

PS C:\Users\292883> $htmlBody = $Body | ConvertTo-HTML | out-string

PS C:\Users\292883> write-host $htmlBody

我试图创建一个PS对象,然后管道它,但它似乎都得到了相同的输出。

另外,尝试使用PSCustomObject代替PSObject,如下所示。它似乎工作但仍然输出有一个合并的标题表行。

$results = @()
$applicationtable1 = "< table>< tr>Application Name< /tr>< tr>Requested By< /tr>< tr>Requested Date< /tr>< /tr>"
$applicationtable1 += "< tr>< td> hi < /td>< td> hi < /td> < td> hi < /td>< /tr> < /table>"


$item = New-Object -Type PSCustomObject -Property @{
      'html' = $applicationtable1

    }
 $results = $item | ConvertTo-HTML | out-string

**即使我没有标题行**,仍然会出现输出片段

  

&LT;表&gt;   &LT; colgroup&gt;&lt; col /&gt;   &LT; tr&gt;&lt; th> *&lt; / th&gt;&lt; / tr&gt;

1 个答案:

答案 0 :(得分:1)

ConvertTo-Html接受一个对象,并为您提供HTML表示。您正在创建的是生成一个HTML表,其中包含一个标题为“Html”的列。该表的所有内容都受HTML编码的约束(&lt;将变为&lt;等等)。

如果您希望使用ConvertTo-Html,则必须将其作为对象提供。

$item = [PSCustomObject]@{
    'Application Name' = 'hi'
    'Requested By'     = 'hi'
    'Requested Date'   = 'hi'
}
$item | ConvertTo-HTML | out-string

您可以使用各自的参数在原始HTML中包含PreContent和PostContent。类似地,您可以使用Head参数包含CSS样式等。