文字列をIEに出力する(out-ie)

またまたPDC2005ネタです。
MonadVBScript(IE)の連携デモ(mms://media.sitestream.com/microsoft_sitestream_com/open/PDC05/TLN/TLN303/0MM7.wmv)の中で、
「out-ie」というコマンドが利用されています。


標準では用意されていないCmdletなので、なんだろな〜と思っていたのですが、注意深くムービーを見ると、「out-ie.msh」というファイルが一瞬だけ映っていました。デモ用に用意したスクリプトのようですね。


ということで、今回は、ムービーの挙動から予想して「out-ie」コマンドを作成してみました。
「convert-html」Cmdletの出力結果をIEに出力するなど、結構、便利です。

ムービーから予想される「out-ie」の仕様

  • IEを起動し、パイプで渡された文字列をIEに出力する
  • アドレスバーは「about:blank」
  • 戻り値はIEオブジェクト

追加仕様

  • パイプで文字列配列を渡した際は、全ての要素をIEに出力するようにしました。

「out-ie

※MSHのインストールパス($MSHHOME)に置いてください。

out-ie.msh
param()

#パイプでオブジェクトが渡されたかチェック
$test = $input.clone()
if($test.MoveNext() -eq $False){return}

#パイプで渡されたのが「文字列」かどうかチェック
$html = @($input)
if(($html[0] -is [System.String]) -eq $False){}

$ie = new-object -com internetexplorer.application
$ie.visible = $true
[void]$ie.navigate2("about:blank")

while($ie.ReadyState -ne 4){}

for($i=0; $i -lt $html.length; $i++)
{
    [void]$ie.document.writeln([String]$html[$i])
}
[void]$ie.refresh()
return $ie

実行方法

実行例

get-date | convert-HTML | out-ie