欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Powershell创建简洁的HTML报告例子

程序员文章站 2022-07-05 10:26:43
支持所有版本 把结果变成复杂的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