ConvertTo-Htmlって
PowerShellはコマンドの出力がオブジェクトの羅列で出力されます。
それを色々な形に成形するためのコマンドレットが搭載されているのですが、
中でも見栄えがしそうなのがHTML出力をやってくれる「ConvertTo-Html」です。
参考サイトにも載っていますが
ps-table.ps1
ps | ConvertTo-Html | Out-File -FilePath C:¥file¥to¥path¥ps.html
こんな感じでコマンドの結果にConvertTo-Htmlをパイプで通すことで
オブジェクトの羅列をtableタグに記録したHTMLファイルが吐き出されます。
で、これだけだと味気ないんですがこのHTMLの出力についてオプションである程度コントロールができます。
例えば
- headタグに色々入れる
- h1タグの挿入
などなど。
こういうことができるのであればやる事は
「テーブル制御できるJavaScriptを読み込ませてリッチにやってみる」ですよねー
やってみた
sortabletable.ps1
$title = "ps結果:{0}" -f (Get-Date -Format "yyyy/mm/dd hh:MM:ss")
$header = "<link rel=`"stylesheet`" href=`"https://cdn.jsdelivr.net/g/jquery.tablecloth@1.0.0(css/bootstrap-tables.css+css/tablecloth.css),tablesorter@2.28.9(css/dragtable.mod.min.css+css/filter.formatter.min.css)`">`n<script src=`"https://cdn.jsdelivr.net/g/jquery@3.2.1,jquery.metadata@2.0(jquery.metadata.js),tablesorter@2.28.9,jquery.tablecloth@1.0.0`"></script>`n<script type=`"text/javascript`"> `$(document).ready(function(){`$(`"table`").tablecloth({ theme: `"paper`", striped: true, sortable: true });});</script>"
ps | ConvertTo-Html -Head $header -Title $title |% { $_ -replace "<tr><th>","<thead><tr><th>" }| % { $_ -replace "</th></tr>","</th></tr></thead>" }|Out-File -FilePath C:¥file¥to¥path¥ps-js.html
PowerShellが実行できる環境でPowerShellISEなどにコピペして実行してください。
出力先のパスは環境に合わせて適宜修正して頂ければと。
やってること
後で書く。CDNから適当にライブラリ選定してコピペしてるだけですが。
これだけだとつまらないので
今の段階ではやっつけで作っただけなので上手い応用があれば記載します。