[PowerShell][基本] 自動変数について

本記事の概要

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の実行時に自動的に作成され、スクリプトやコマンドレット内で使用することができます。ただし、一部の自動変数は上書きできない場合があるため、注意が必要です。

コメント

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