連載
» 2016年08月04日 05時00分 UPDATE

Windows PowerShell基本Tips(6):【 Get-Content 】コマンドレット――ファイルの内容を参照する

本連載は、Windows PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、「Get-Content」コマンドレットです。

[国井傑(Microsoft MVP for Directory Services),株式会社ソフィアネットワーク]
「Windows PowerShell基本Tips」のインデックス

連載目次

 本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、ファイルの内容を参照する際に役立つ「Get-Content」コマンドレットです。

Get-Contentコマンドレットとは?

 「Get-Content」は、ファイルの内容をPowerShellコンソール画面に表示するコマンドレットです。ファイルの内容が「メモ帳(notepad.exe)」アプリで参照できる形式で記述されていれば(つまり、テキストファイルであれば)、Get-Contentコマンドレットで簡単に内容を参照できます。

 また、Get-Contentコマンドレットは、コマンドプロンプトの「type」コマンドや、Linuxの「cat」コマンド、「tail」コマンドと同じ要領で使用できます。


Get-Contentコマンドレットの書式

Get-Content [パス] [オプション]

※[ ]は省略可能な引数を示しています



Get-Contentコマンドレットの主なオプション

 Get-Contentコマンドレットの主なオプションは次の通りです。

オプション 意味
-totalcount ファイルの文頭から表示する行数を指定する。省略可能
-last ファイルの文末から表示する行数を指定する。省略可能
-delimiter 参照するファイルを表示する際、改行するタイミングを指定する。省略可能
-wait 1秒おきにファイルをチェックし、新たに追加された内容があるかどうかをチェックする。省略可能


ファイルの最初/最後の5行だけ表示する

 参照するファイルの内容が多い(行数が多い)場合は、最初の数行だけを表示して、概要を把握したい場合があります。また、ファイル内容の最後の数行だけを確認したい場合もあるでしょう。

 「-totalcount」オプションで表示する行数を指定すると、ファイルの文頭から指定した行数だけが表示されます。「Get-Content ファイルパス -totalcount 5」と実行すると、指定したファイルの最初の5行だけが表示されます。

 以下の実行例では、「C:\Work\eula.txt」の最初の5行だけを表示させています(画面1)。

コマンドレット実行例

Get-Content C:\Work\eula.txt -totalcount 5

(「eula.txt」の最初の5行だけを表示する)


画面1 画面1 「-totalcount 5」オプションで、ファイルの先頭5行だけが表示されるようにしている

 同様に「-last」オプションを使用すると、ファイルの文末から指定した行数だけが表示されます。「Get-Content ファイルパス -last 5」と実行すると、ファイルの最後の5行だけが表示されます。

コマンドレット実行例

Get-Content C:\Work\eula.txt -last 5

(「eula.txt」の最後の5行だけを表示する)




内容を読みやすいように改行する

 「-delimiter」は、表示するファイルの内容に対して改行を入れ、読みやすくしてくれるオプションです。

 以下の実行例では、「C:\Work\eula.txt」に含まれる読点(、)のタイミングで改行して、表示しています。

コマンドレット実行例

Get-Content C:\Work\eula.txt -delimiter "、"

(「eula.txt」を「、」のタイミングで改行を入れて表示する)


画面2 画面2 「-delimiter」オプションを使用して、文章の読点(、)の後で改行している。

 なお、「-delimiter」オプションを使用する際には、改行を行う文字をダブルクォーテーション(")で囲んで指定してください。



ファイルに追記された内容を表示する

 「-wait」オプションを使用すると、指定したファイルを1秒おきにチェックし、新たに書き込まれた内容があった場合には、その内容を表示するようになります。

 以下の実行例では、「C:\Work\logs\pkt_20160725.log」の内容を、「-last」オプションで最後の1行だけを表示するように設定し、さらに「-wait」オプションで追記された内容があった場合に表示するようにしています。

コマンド実行例

Get-Content C:\Work\logs\pkt_20160725.log -last 1 -wait

(「pkt_20160725.log」を1秒おきにチェックして、追記内容があれば最後の行に表示する)


画面3 画面3 この画面では複数行が一度に表示されているが、実際はファイルに追記されたタイミングで最後の行の内容が表示されている


筆者紹介

国井 傑(くにい すぐる)

株式会社ソフィアネットワーク取締役。1997年よりマイクロソフト認定トレーナーとして、Active DirectoryやActive Directoryフェデレーションサービス(AD FS)など、ID管理を中心としたトレーニングを提供している。2007年よりMicrosoft MVP for Directory Servicesを連続して受賞。なお、テストで作成するユーザーアカウントには必ずサッカー選手の名前が登場するほどのサッカー好き。


Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。