4
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PowerShellでConvertTo-Htmlの出力を贅沢にする

Last updated at Posted at 2017-05-24

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から適当にライブラリ選定してコピペしてるだけですが。

これだけだとつまらないので

今の段階ではやっつけで作っただけなので上手い応用があれば記載します。

参考

4
6
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?