Windows
tail
PowerShell

windowsでもリアルタイムでログ監視(tail -f)がしたい!


序文

昔はmacで開発してたラチェです。

macならtail -fでログがリアルタイムで見れるのですが、

windowsはそうはいかず、必死に探してたら、tailっぽいことができるコマンドがありましたよ…!


動作要件

★PowerShell 3.0 以上

Win7だと初期バージョンの場合2.0の場合があるようです。

win8以降は標準でpowershell3.0がインストールされています。

win10は標準で4.0が入っているので同じく問題なしです。


バージョン確認方法


1.windowsからpowershellを起動。

windows10:左下の入力欄にpowershellと入力すると出てきます

windows8:持ってないのでわからないです><

windows7:スタート→プログラムとファイルの検索でpowershellと入力


2.バージョン確認コマンドの入力

Windows8以上だったら特にいらないです


powershell

$PSVersionTable



3.出力結果からバージョンを確認

Name                           Value

---- -----
PSVersion 5.1.15063.502

上記のPSVersionが3.0以降であることを確認してください

◆3.0でない場合は、以下を実行してください。

.NET Framework 4.5をインストールする。

WMF 4.0をインストールする

PCを再起動後、3の手順を再実行し、バージョンを確認。


4.下記コマンドを入力


powershell

Get-Content -Path [確認したいファイルのフルパス] -Tail -Wait -Encoding [文字コード]



  • 文字コードの箇所、日本版のpowershellのデフォルトではS-JISで読み込んでますが、文字化けする場合はUTF8とかに変えてあげてください。(利用可能な文字コードはこちら)

  • select-stringを使って、特定の文字が入った行のみ出力することも可能です。[| select-string "error"]みたいな感じ

  • 動かない場合は、-Tail の後に0を入れてください。[@currysitaさんありがとうございます!]

上記を行うことでソフトを入れずにwindowsでtailができるようになります。


5.注意

監視対象のファイルの所有権を他のアプリやバッチが常時握っていると、このコマンドは利用できません。