HTML中的Escape Powershell变量

时间:2019-03-01 18:56:38

标签: html powershell

我试图在Powershell中编写报告,然后将输出发送到HTML页面。我在想如何将我的Powershell脚本中的变量格式化为HTML。 如果我得到的输出不正确,我将在我的html页面中使用蓝色字体。

这是我的Powershell脚本

$os =  (get-wmiobject -class win32_operatingsystem).caption


function checkosvers {
if($os -contains "*Server*" ){
write-output "This is a server"}

else{
write-output "Its a $os"}
}

$osvers = checkosvers | foreach {$PSItem -replace ("Its a $os","<font  color='blue'>Its a $os</font>")}
$osvers | ConvertTo-Html -Fragment -as List  | Out-File -FilePath "C:\Users\XX\Desktop\mypage.html"

如果我将字符串替换为变量,则它在我的html页面中显示为蓝色 {$ PSItem -replace(“ Its a $ os”,“ Its a $ os”)}

1 个答案:

答案 0 :(得分:0)

您可以对其进行过滤,然后使其输出所需的内容。我希望它接受管道中的值以易于使用,所以像这样:

filter checkosvers {
param([Parameter(ValueFromPipeline)]$osVer)
if($osVer -match "Server" ){
    "This is a server"
}else{
    "<font color='blue'>Its a $osVer</font>"}
}

然后,您可以将内容通过管道传递给它,例如:

PS C:\Windows\system32> 'Microsoft Windows Server 2012 R2 Datacenter'|checkosvers
This is a server

或...

PS C:\WINDOWS\system32> (get-wmiobject -class win32_operatingsystem).caption|checkosvers
<font color='blue'>Its a Microsoft Windows 10 Enterprise</font>