powershell 「$_」と「$PSItem」は同じ意味

PowerShell

PowerShell の状態情報を格納する変数について

Powershellを始めると、最初の方でつまづく、一見意味のい記号のように感じる「$_」

サンプルを作る人が適当に決めた名前だと思っていたが、実は意味を持っていた。さらに「$_」と「$PSItem」は同じ意味になっている。

$_
$PSItem と同じ。 パイプラインオブジェクトの現在のオブジェクトを格納します。 この変数は、パイプライン内のすべてのオブジェクトまたは選択したオブジェクトに対してアクションを実行するコマンドで使用できます。
$PSItem
$_ と同じ。 パイプラインオブジェクトの現在のオブジェクトを格納します。 この変数は、パイプライン内のすべてのオブジェクトまたは選択したオブジェクトに対してアクションを実行するコマンドで使用できます。

自動変数について – PowerShell | Microsoft Docs

サンプルコード

検証用のサンプルコード

Get-Process | ForEach-Object -Process { 
  write-host '$PSItem:'$PSItem.Name.ToString() '$_:' $_.Name.ToString()
}

実行結果

実行結果をみると、確かに「$_」と「$PSItem」で、結果が同じになっている。

$PSItem: AggregatorHost $_: AggregatorHost
$PSItem: AppHelperCap $_: AppHelperCap
$PSItem: ApplicationFrameHost $_: ApplicationFrameHost
$PSItem: audiodg $_: audiodg
$PSItem: backgroundTaskHost $_: backgroundTaskHost
・・・・・
ライセンス:本記事のテキスト/コードは特記なき限り CC BY 4.0 です。引用の際は出典URL(本ページ)を明記してください。
利用ポリシー もご参照ください。

コメント

タイトルとURLをコピーしました