特殊変数(1)

以下のページで特殊変数について詳しく書かれています。
Special Variables

「$true」「$false」「$null」

最も基本的な特殊変数は「$true」「$false」「$null」の3つです。
それぞれ、

  • Boolean TRUE
  • Boolean FALSE
  • A null object

を表します。

「$_」

「$_」はパイプを通して渡されるオブジェクトを格納します。

foreachやwhereと一緒に利用する頻度が高いですね。

「$_」のサンプル:プロセス名一覧を列挙する
MSH C:\> get-process | foreach{$_.Name}

「$^」「$$」

「$^」と「$$」は、直前に実行されたシェルの最初のトークン/最後のトークンを格納します。

「$^」「$$」のサンプル
MSH C:\> get-process | where {$_.Name -like "w*"}

Handles  NPM(K)    PM(K)      WS(K) VS(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    418      69     6220       2136    38    12.94    176 WINLOGON
    129      16     1092        680    24     4.02   1376 WinMgmt


MSH C:\> $^
get-process
MSH C:\> $$
}

「$?」

「$?」は最後に実行されたシェルの結果(success/fail)を格納します。

「$?」のサンプル
MSH C:\> $a = get-process
MSH C:\> $?
True
MSH C:\> $a = get-processs
'get-processs' is not recognized as a Cmdlet, function,
operable program, or script file.
At line:1 char:17
+ $a = get-processs <<<<
MSH C:\> $?
False