これまではデバッグ時に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のコンソールにその内容が表示されるようになります。