今回はPowerShellのコマンドレット(コマンド)の実行結果として得られる値(戻り値)について解説したい。一般的なスクリプト言語だと、戻り値は文字列(テキスト)。得られた結果を加工する場合は文字を解析して必要なデータを取り出す。

 これに対しPowerShellの戻り値は「オブジェクト」で、様々な操作ができる。オブジェクトとは、関連するデータと処理を固まりにしたもの。以下を試してみよう。

Get-Command

を実行すると、使用可能なコマンドの一覧が表示される。次に

$result = Get-Command

として実行結果を変数に格納する。「$」で始まる文字列は変数を意味する。今度は画面には何も表示されない。結果が$resultに格納されたからだ。ここで

$result

と入力すると、Get-Commandの結果が表示される。$resultに文字列が格納されていると思われるかもしれないが、

$result.Count

を実行すると、今度は数値が表示される(図1)。これは「$result」という変数に格納されているのがオブジェクトであるためだ。「Count」というプロパティ(属性)を指定することで、このオブジェクトに含まれる情報の一つである結果の数(今回の例だとコマンドの数)を参照できる。このように、コマンドの実行結果に対して処理を実行できる。処理を呼び出す方法として、プロパティやメソッド(操作)などがオブジェクトごとに存在する。一見するとプロパティは処理ではなく、属性情報そのもののように思える。しかし実際には、情報を取り出す処理と情報を設定する処理を実行している。メソッドはオブジェクトが実行できる処理を指定する。これらをまとめて「メンバー」と呼ぶ。

図1●Get-Commandの実行結果を操作する
図1●Get-Commandの実行結果を操作する
PowerShellではコマンドの実行結果は文字列ではなく、様々な操作が可能な「オブジェクト」である。ここではコマンド「Get-Command」の実行結果を変数「$result」に格納して、「Count」というプロパティ(属性)を表示させている。
[画像のクリックで拡大表示]
▼結果の数
「Count」はGet-Commandの戻り値におけるプロパティの一つ。ほぼすべてのコマンドの戻り値で利用できる。