Get-Contentの-Waitはtailの代わりにならない

b3g2015-10-20
 会社のWindows Server環境で起動時に以下のような感じでループを回すバッチファイルを実行して

loop.bat > logfile.log 2>&1

バッチファイル実行中の出力をリアルタイムで確認しているのですが、Windowsにはtailコマンドがないので、今まではリソースキットのtail.exeを使っていました。このたびServer 2008 R2の環境に移行しまして、もう2008用のリソースキットもないし、2008でも使えるとのことだけどこれだけのためにリソースキットを導入するのもな、ということで調べてみるとPowershellのバージョン3.0からはGet-Contentコマンドレットの-Waitオプションでtail -fと同じことができるよとの記事が多数ヒットします。うちの環境はPowershellのバージョンを4.0にしているので使えそう。しかし、上記ファイルを

Get-Content .\logfile.log -Wait

などとして、しばらく待っても全く更新されません。調べるとこちらの投稿にあるように、いったんファイルがクローズされないと更新されない模様。うちの用途ではまったくもって-Waitオプションは使い物になりません。
 ということでWindowsで別のtailの方法を調べてみるとこちらの記事がまとまっていて参考になりました。そこでおすすめのBare Tailを入手。インストールすることもなくダウンロードしたbaretail.exeファイルだけをデスクトップなどに置いて起動するのみです。こちらは問題なくログファイルが更新されて監視できるようになりました。
 一度開いたファイルは覚えていて、次回起動時も前回の状態で開いてくれるのも便利ですね。必要十分なツールです。