Powershell创建简洁的HTML报告例子
程序员文章站
2022-03-31 09:21:56
支持所有版本
把结果变成复杂的html报告,一个简单的方法是定义三个脚本块:一个用作html的开头文档,一个用作它的结尾,还有一个是存放动态对象的表格
接着,把这些脚本...
支持所有版本
把结果变成复杂的html报告,一个简单的方法是定义三个脚本块:一个用作html的开头文档,一个用作它的结尾,还有一个是存放动态对象的表格
接着,把这些脚本块传入到foreach-object,分别对应脚本的开始块、中间要处理的动态列表块和结束代码块。
下面有个简单的例子阐述如何用它创造一个服务报告:
复制代码 代码如下:
$path = "$env:temp\report.hta"
$beginning = {
@'
<html>
<head>
<title>report</title>
<style type="text/css">
h1 {font-family:segoeui, sans-serif; font-size:20}
th {font-family:segoeui, sans-serif; font-size:15}
td {font-family:consolas, sans-serif; font-size:12}
</style>
</head>
<image src="//www.jb51.net/yourlogo.gif" />
<h1>system report</h1>
<table>
<tr><th>status</th><th>name</th></tr>
'@
}
$process = {
$status = $_.status
$name = $_.displayname
if ($status -eq 'running')
{
'<tr>'
'<td bgcolor="#00ff00">{0}</td>' -f $status
'<td bgcolor="#00ff00">{0}</td>' -f $name
'</tr>'
}
else
{
'<tr>'
'<td bgcolor="#ff0000">{0}</td>' -f $status
'<td bgcolor="#ff0000">{0}</td>' -f $name
'</tr>'
}
}
$end = {
@'
</table>
</html>
</body>
'@
}
get-service |
foreach-object -begin $beginning -process $process -end $end |
out-file -filepath $path -encoding utf8
invoke-item -path $path