我正在尝试使用PowerShell ConvertTo-HTML
创建报告
if($FileLine){
$frag1 = $FileLine | Sort-Object Name | ConvertTo-Html -Fragment -Property Name,Action -PreContent “<h3>Group Sync : $gcount change(s)</h3>” | Out-String
}else{
$frag1 = "<h3>Group Sync : $gcount change(s)</h3>There is no change on any group."
}
if($FileLine2){
$frag2 = $FileLine2 | Sort-Object Name | ConvertTo-Html -Fragment -Property Name,Action,AddedGroups,DeletedGroups -PreContent “<h3>User Sync : $ucount change(s)</h3>” |Out-String
}else{
$frag2 = "<h3>User Sync : $ucount change(s)</h3>There is no change on any user."
}
#1st try
ConvertTo-Html -head $head -PostContent $frag1,$frag2 -PreContent "<!--empty-->" -body "<BR>" | Out-File $emailfile
#2nd try
#ConvertTo-HTML -body "$frag1 $frag2" -PostContent "<BR>nothing" -head $head | Out-File $emailfile
但是,这段代码在我的HTML中导致了一个空表。
知道为什么发生此问题吗?我尝试了多种方法来删除它(示例“第二次尝试”),但是它将在其他地方创建空表。
还是有一种方法可以在调用ConvertTo-HTML之后删除此空表?任何帮助表示赞赏。
最佳答案
我知道您的主要问题是什么,但是解决方案可能需要您自己解决。阅读 ConvertTo-HTML
on TechNet的描述
在最后一次调用中(两次尝试中),您都没有指定-InputObject
,后者通常用作空表的内容。看到它是可选的,这不是错误,但是cmdlet还是创建了占位符表。您没有看到$frag
,因为您通过管道提供了对象。
我尝试添加一些虚拟/空数据进行测试,但由于我总是添加某些内容,因此它显然无法完成任何工作。
如果您愿意使用某些正则表达式,则可以清除空表。
(ConvertTo-Html | Out-String) -replace "(?sm)<table>\s+</table>"
除此之外,除了构建自己的HTML内容外,我不知道如何避免这种情况。
关于powershell - 如何阻止ConvertTo-HTML创建空表?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42746075/