HTML output

Ha már ilyen szép táblázatokat tudunk készíteni, akkor jó lenne ezeket valamilyen még szebb formában megjeleníteni. Ezt szolgálja a PowerShell beépített HTML támogatása:

[7] PS C:\> Get-Service [a-b]* | ConvertTo-Html -Property Status,Name,DisplayName -head "Services on my computer" > service.html

37 . ábra Convert-HTML eredménye böngészőben

Természetesen itt a kimenetet nem a konzolon érdemes nézni, mert ott a html forráskódot látjuk, hanem érdemes átirányítani egy fájlba, amit a böngészőben lehet megnézni.

Látjuk, hogy szép táblázatos formátumot ad, kis ügyességgel lehet ezt még fokozni. Itt most még nem célom a teljes kód elmagyarázása, csak egy kis kedvcsinálóként írom ide, a PowerShell ISE szerkesztőből kimásolva:

Get-Service [a-b]* | ConvertTo-Html -Property Status,Name,DisplayName -head "Services on my computer" |

foreach-object {

     if ($_ -like "*<td>Running</td>*")

          {$_ -replace "<td>Running", "<td bgcolor=green>Running"}

     elseif ($_ -like "*<td>Stopped</td>*")

          {$_ -replace "<td>Stopped", "<td bgcolor=red>Stopped"}

     else

          {$_ -replace "<tr>", "<tr bgcolor=#C0C0C0>"}

     } > C:\PowerShell\service.html

És a végeredmény:

38 . ábra Kicsit kibővített HTML kimenet a böngészőben

(Ha ezt fekete-fehér nyomtatásban nézik, akkor elmondom, hogy a futó szolgáltatások Status-a zöld, a leálltaké pedig piros hátterű.)

Ha csak a Convertto-Html saját lehetőségeit vesszük, akkor nézzünk egy nagyon felcsicsázott megoldást, ahol külön stílusdefinícióval szabályozom a táblázat kinézetét:

$header = @"

<style type="text/css">

TABLE           {

     border: thin solid #0000FF;

     margin: 0px;

     TABLE-LAYOUT: fixed;

     FONT-SIZE: 100%;

     WIDTH: 100%;

     padding: 0px 0px 0px 0px;

     border-collapse: collapse;

}

td                    {

     border: thin solid #008080;

     padding: 5px;

     margin: 0px;

     VERTICAL-ALIGN: TOP;

     FONT-FAMILY: Tahoma;

}

th                    {

     VERTICAL-ALIGN: TOP;

     COLOR: green;

     TEXT-ALIGN: left;

     font-size: x-large;

     background-color: #FFFF00;

     border-bottom-style: dotted;

     border-bottom-color: #FF0000;

}

</style>

"@

 

Get-Service [a-b]* |

    ConvertTo-Html -Head $header `

        -Title "Jelentés" -Property Status,Name,DisplayName `

        -PreContent "<h1>Szolgáltatások a gépemen</h1>Készült: $(get-date)" `

        -PostContent "Készítette: Soós Tibor" > service.html

És ennek kimenete:

39 . ábra A ConvertTo-HTML teljes pompájában



Word To HTML Converter