コンテンツにスキップ

Top

Windows で tail

Linuxでよく使うTailコマンドをWindowsでやるにはどうしたらよいか調べところ、PowerShellなら簡単にできることが判明しましたのでメモします。

PowerShellを起動して、普通にtailすると、

PS > tail -f .\hoge.txt
tail : 用語 'tail' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。
名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください。
発生場所 行:1 文字:1
+ tail -f .\hoge.txt
+ ~~~~
    + CategoryInfo          : ObjectNotFound: (tail:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

みたいにエラーになってうまくできません。

以下のようにするとうまくできます。

Get-Content -Path ログファイル -Wait -Tail 5 

ログファイルに変更があればコンソールが更新されます。

最後の「5」は表示行数です。

Linuxと違って表示行数の省略は不可なので必須になります。

文字化けする場合はEncodeオプションをつけます。

Get-Content -Path ログファイル -Wait -Encoding UTF8 -Tail 5

Get-Content が うざいなら、エイリアスとして cat が使えますので、

cat -Path ログファイル -Wait -Encoding UTF8 -Tail 5

とすれば同じことになります。

以上!