PowerShell の状態情報を格納する変数について
Powershellを始めると、最初の方でつまづく、一見意味のい記号のように感じる「$_」
サンプルを作る人が適当に決めた名前だと思っていたが、実は意味を持っていた。さらに「$_」と「$PSItem」は同じ意味になっている。
1 2 |
$_ $PSItem と同じ。 パイプラインオブジェクトの現在のオブジェクトを格納します。 この変数は、パイプライン内のすべてのオブジェクトまたは選択したオブジェクトに対してアクションを実行するコマンドで使用できます。 |
1 2 |
$PSItem $_ と同じ。 パイプラインオブジェクトの現在のオブジェクトを格納します。 この変数は、パイプライン内のすべてのオブジェクトまたは選択したオブジェクトに対してアクションを実行するコマンドで使用できます。 |
自動変数について – PowerShell | Microsoft Docs
サンプルコード
検証用のサンプルコード
1 2 3 |
Get-Process | ForEach-Object -Process { write-host '$PSItem:'$PSItem.Name.ToString() '$_:' $_.Name.ToString() } |
実行結果
実行結果をみると、確かに「$_」と「$PSItem」で、結果が同じになっている。
1 2 3 4 5 6 |
$PSItem: AggregatorHost $_: AggregatorHost $PSItem: AppHelperCap $_: AppHelperCap $PSItem: ApplicationFrameHost $_: ApplicationFrameHost $PSItem: audiodg $_: audiodg $PSItem: backgroundTaskHost $_: backgroundTaskHost ・・・・・ |
コメント