我试图在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”)}
答案 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>