我在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;
答案 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样式等。