PowerShellでtailする方法|Get-Contentの使い方を解説
目次
スポンサードリンク
LinuxやUNIXには、テキストファイルの末尾の数行を表示するための「tail」というコマンドがあります。このコマンドを -f オプションを付けて実行すると、リアルタイムで変更が確認でき、ログファイルの監視などでよく利用されます。
Windowsには tailコマンドはありませんが、PowerShellの Get-Content コマンドレットを使って tail と同じような処理ができます。
PowerShellでtail相当の操作を行う方法
PowerShellでは Get-Content コマンドを -Tail オプションを指定して実行することで Linux の tail コマンドと同等の機能を実現できます。以下は基本的な構文です。
Get-Content <ファイルパス> -Tail <行数>
以下コマンドの例は、Windows環境でxamppのApacheを起動し、アクセスログの末尾10行を表示しています。
PS C:\Users\username> Get-Content C:\xampp2\apache\logs\access.log -Tail 10
::1 - - [20/Oct/2023:18:50:29 +0900] "POST /phpmyadmin/index.php?route=/ HTTP/1.1" 200 1717 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 Edg/118.0.2088.57"
::1 - - [20/Oct/2023:18:50:30 +0900] "POST /phpmyadmin/index.php?route=/ HTTP/1.1" 200 1717 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 Edg/118.0.2088.57"
::1 - - [20/Oct/2023:18:50:31 +0900] "POST /phpmyadmin/index.php?route=/ HTTP/1.1" 200 1717 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 Edg/118.0.2088.57"
::1 - - [20/Oct/2023:19:14:30 +0900] "POST /phpmyadmin/index.php?route=/ HTTP/1.1" 200 1717 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 Edg/118.0.2088.57"
::1 - - [20/Oct/2023:19:14:32 +0900] "POST /phpmyadmin/index.php?route=/ HTTP/1.1" 200 1717 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 Edg/118.0.2088.57"
::1 - - [20/Oct/2023:19:38:31 +0900] "POST /phpmyadmin/index.php?route=/ HTTP/1.1" 200 1717 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 Edg/118.0.2088.57"
::1 - - [20/Oct/2023:19:38:33 +0900] "POST /phpmyadmin/index.php?route=/ HTTP/1.1" 200 1717 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 Edg/118.0.2088.57"
::1 - - [20/Oct/2023:20:02:32 +0900] "POST /phpmyadmin/index.php?route=/ HTTP/1.1" 200 1717 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 Edg/118.0.2088.57"
::1 - - [20/Oct/2023:20:02:34 +0900] "POST /phpmyadmin/index.php?route=/ HTTP/1.1" 200 1717 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 Edg/118.0.2088.57"
::1 - - [20/Oct/2023:20:02:35 +0900] "POST /phpmyadmin/index.php?route=/ HTTP/1.1" 200 1717 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 Edg/118.0.2088.57"
ファイルのリアルタイム監視
Linuxの tail -f のように、ファイルの更新をリアルタイムで監視したい場合は、-Wait オプションを追加します。下記コマンドでは Windows環境で xamppのApacheを対象にアクセスログの変更を監視しています。
このコマンドを実行した状態のまま、ブラウザでApacheで公開しているサイトにアクセスすると、アクセスログに追記された内容が、PowerShellのコンソールにも表示されます。監視を終了したいときは Ctrl+C で終了できます。
PS C:\Users\username> Get-Content C:\xampp2\apache\logs\access.log -Tail 10 -Wait
::1 - - [09/Jun/2025:17:55:14 +0900] "GET / HTTP/1.1" 302 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36"
::1 - - [09/Jun/2025:17:55:14 +0900] "GET /dashboard/ HTTP/1.1" 200 5186 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36"
::1 - - [09/Jun/2025:17:55:14 +0900] "GET /dashboard/stylesheets/normalize.css HTTP/1.1" 200 6876 "http://localhost/dashboard/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36"
::1 - - [09/Jun/2025:17:55:14 +0900] "GET /dashboard/javascripts/modernizr.js HTTP/1.1" 200 51365 "http://localhost/dashboard/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36"
::1 - - [09/Jun/2025:17:55:14 +0900] "GET /dashboard/images/xampp-logo.svg HTTP/1.1" 200 5427 "http://localhost/dashboard/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36"
::1 - - [09/Jun/2025:17:55:14 +0900] "GET /dashboard/images/fastly-logo.png HTTP/1.1" 200 1770 "http://localhost/dashboard/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36"
::1 - - [09/Jun/2025:17:55:14 +0900] "GET /dashboard/stylesheets/all.css HTTP/1.1" 200 406998 "http://localhost/dashboard/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36"
::1 - - [09/Jun/2025:17:55:14 +0900] "GET /dashboard/javascripts/all.js HTTP/1.1" 200 188385 "http://localhost/dashboard/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36"
::1 - - [09/Jun/2025:17:55:14 +0900] "GET /dashboard/images/social-icons.png HTTP/1.1" 200 3361 "http://localhost/dashboard/stylesheets/all.css" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36"
::1 - - [09/Jun/2025:17:55:14 +0900] "GET /dashboard/images/favicon.png HTTP/1.1" 200 2508 "http://localhost/dashboard/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36"
::1 - - [09/Jun/2025:17:55:46 +0900] "GET /dashboard/?foo=bar HTTP/1.1" 200 5186 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36"
まとめ
PowerShellでファイルの末尾を確認したい場合は、Get-Content の -Tail および -Wait オプションを使うことで、Linuxの tail と同じような処理が実現できます。ログ監視やファイルデバッグ時に役立つテクニックとして、ぜひ活用してください。
コマンドプロンプトのポケットリファレンス:Windows11対応版
Windows環境で開発やシステム管理を行うエンジニアにとって、コマンドプロンプトの知識は非常に重要なスキルセットです。こちらの書籍は初心者にもわかりやすく網羅的です。手元に置いておきたい一冊です。
PowerShellの基礎を一通り学べるおすすめ書籍