PowerShellでtailコマンドを実装する方法

記事内に広告が含まれています。

これまではデバッグ時にWindows上でファイルの更新を感知して、その変更部分を表示して監視するにはフリーソフトを使っていました。

Linux などにある tail コマンドのかわりですね。

今回、そのツールがファイルの文字コードが UTF-8 に対応しておらず、日本語が文字化けしてしまうので自作でなんとかできないかということで Windows10 に付属の PowerShell でやってみました。

PowerShellでtailコマンドを実装する

Windows10 の PowerShell にはGet-Content というコマンドレットがありますので、それを使います。

Get-Content -Path [ファイル名]-Wait -Encoding [漢字コード] -Tail [最初に表示する行数]

上記のコマンドをPowerShellで起動します。

PowerShell ウィンドは Windows10 のタスクバーの「ここに入力して検索」に「powershell」と入力すると起動できます。

ファイルの漢字コードには以下のものが指定できます。

ASCII ASCII (7 ビット) 文字セットのエンコードを使用します。
BigEndianUnicode big-endian バイト オーダーを利用し、UTF-16 形式でエンコードします。
Byte 文字セットを一連のバイトにエンコードします。
String 文字列のエンコード タイプを使用します。
Unicode little-endian バイト オーダーを利用し、UTF-16 形式でエンコードします。
UTF7 UTF-7 形式でエンコードします。
UTF8 UTF-8 形式でエンコードします。

実際にコマンドを実行するPowerShellは以下のようになります。

Get-Content -Path logfile.txt -Wait -Encoding UTF8 -Tail 10

これで logfile.txt に行が追加されると自動でPowerShellのコンソールにその内容が表示されるようになります。

タイトルとURLをコピーしました