PowerShell: 自動変数(シェル変数)とは
PowerShellには自動変数(シェル変数)と呼ばれる変数があります。 自動変数とはPowerShellによって作成・管理される変数のことで、 ホームディレクトリのパスやエラー情報、引数情報などの 状態が格納されています。
いくつかの自動変数がある中で、
最も使用頻度が高いのは「$true」と「$false」です。
「$true」は真偽値の真「True」を表し、
「$false」は偽「False」を表します。
PowerShellでは真偽値を表す場合「True」や「False」
と記述するとエラーになります。
自動変数を使って「$true」「$false」と記述します。
他にはNULL値も「NULL」ではなく「$null」と記述します。
代表的な自動変数
PowerShellの自動変数は約50個くらいありますが、 その中でも使う機会のありそうなものを紹介します。自動変数 | 概要 |
---|---|
$true | 真偽値の真(True) |
$false | 真偽値の偽(False) |
$null | NUll値 |
$Args | 関数やスクリプトに指定したパラメータの値 |
$Error | エラー情報 |
$HOME | ユーザーのホームディレクトリのパス |
$PSHOME | PowerShellがインストールされているディレクトリのパス |
$this | 自分自身を示すオブジェクト |
詳細は公式サイトで確認してください。
自動変数について - PowerShell | Microsoft Docs
自動変数は読み取り専用の変数
自動変数は読み取り専用の変数として機能しますが、 中には書き込みできる自動変数もあります。 ですが「旧バージョンとの互換性のために書き込ま ない でください」 とPowerShellの公式ページには書かれています。
試しに「$true」に対して書き込みすると次のようにエラーが発生します。
$true = 1 # 実行結果(エラーメッセージ) 変数 true は読み取り専用または定数であるため、上書きできません。
一方、「$null」に対して書き込みを行うとエラーは発生しませんが、 値は書き変わらないようです。
$null = "abc" Write-Host "-----" Write-Host $null Write-Host "-----" # 実行結果 ----- -----
(まとめ記事: PowerShell 変数)