本記事の概要
PowerShellには、特定の名前を持つ予約済みの変数があります。これらの変数は、スクリプトやコマンドレットの動作に影響を与えたり、情報を提供したりするために使用されます。このような変数を自動変数と呼びます。
この記事では、自動変数について説明します。
$_(アンダースコア)
現在のパイプラインオブジェクトを参照するために使用されます。
Get-ChildItem | ForEach-Object {
Write-Output $_.Name
}
$PSItem
$_ の別名です。
$Input
パイプラインで受け取った入力オブジェクトのコレクションを参照するために使用されます。
function Get-Input {
param(
[Parameter(ValueFromPipeline)]
[String[]]$InputObject
)
process {
$Input | ForEach-Object {
Write-Output $_
}
}
}
"one", "two", "three" | Get-Input
$Args
スクリプトまたはコマンドレットに渡された引数の配列を参照するために使用されます。
function Get-Args {
Write-Output $Args
}
Get-Args "one", "two", "three"
$MyInvocation
現在のスクリプトやコマンドレットに関する情報を含むオブジェクトを参照するために使用されます。
function Get-MyInvocation {
Write-Output $MyInvocation
}
Get-MyInvocation
$Error
直近のエラーオブジェクトを参照するために使用されます。
Get-Item C:\NotExist Write-Output $Error[0].Exception.Message
$Null
null 値を参照するために使用されます。
$var = $null
True および $False
true および false 値を参照するために使用されます。
$var = $True
まとめ
自動変数は、PowerShellの実行時に自動的に作成され、スクリプトやコマンドレット内で使用することができます。ただし、一部の自動変数は上書きできない場合があるため、注意が必要です。

コメント