トピック
    about_Automatic_Variables

簡易説明
    Windows PowerShell の状態情報を格納する変数について説明します。
    これらの変数は、Windows PowerShell によって作成され、保持されます。


詳細説明
    次の一覧は、Windows PowerShell の自動変数を示します。
   
    
    $$
       セッションが受け取った最後の行にある最後のトークンを格納します。
    

    $? 
       最後の演算の実行状態を格納します。最後の演算が成功した場合は TRUE、失敗した場合は 
       FALSE を格納します。
    
    $^
       セッションが受け取った最後の行にある最初のトークンを格納します。
    
    $_
       パイプライン オブジェクトの現在のオブジェクトを格納します。パイプライン内のすべてのオブ
       ジェクトまたは選択されたオブジェクトに対してアクションを実行するコマンドで、この変数を使
       用することができます。
    
    $Args
       宣言されていないパラメーターの配列や、関数、スクリプト、またはスクリプト ブロックに渡さ
       れるパラメーター値を格納します。
       関数を作成する場合、param キーワードを使用するか、関数名の後にかっこで囲んでパラメータ
       ーのコンマ区切り一覧を追加すると、パラメーターを宣言できます。

    $ConsoleFileName
       セッションで最後に使用されたコンソール ファイル (.psc1) のパスを格納します。PSConsoleFile パ
       ラメーターを使用して Windows PowerShell を起動する場合、または Export-Console コマンド
       レットを使用してコンソール ファイルにスナップインの名前をエクスポートする場合、この変数に
       値が設定されます。

       パラメーターなしで Export-Console コマンドレットを使用する場合、セッションで最後に使
       用されたコンソール ファイルが自動的に更新されます。この自動変数を使用すると、どのファイル
       が更新されるかを判断できます。

    $Error
       最新のエラーを表すエラー オブジェクトの配列を格納します。配列内の最初のエラー オブジェ
       クト ($Error[0]) が最新のエラーです。

    $Event
        処理中のイベントを表す PSEventArgs オブジェクトを格納します。この変数は、
        Register-ObjectEvent などのイベントの登録コマンドのアクション ブロック内でのみ設定され
        ます。この変数の値は、Get-Event コマンドレットから返されるオブジェクトと同じオブジェク
        トです。したがって、$Event.TimeGenerated などの $Event 変数のプロパティをアクション ス
        クリプト ブロックで使用できます。

    $EventSubscriber
        処理中のイベントのサブスクライバーを表す PSEventSubscriber オブジェクトを格納します。
        この変数は、イベントの登録コマンドのアクション ブロック内でのみ設定されます。この変数
        の値は、Get-EventSubscriber コマンドレットから返されるオブジェクトと同じオブジェクト
        です。

    $ExecutionContext
       Windows PowerShell ホストの実行コンテキストを表す EngineIntrinsics オブジェクト
       を格納します。この変数を使用して、コマンドレットで使用できる実行オブジェクトを探すことが
       できます。

    $False
       FALSE を格納します。文字列 "false" の代わりにこの変数を使用して、コマンドおよびスクリプト
       で FALSE を表すことができます。空でない文字列またはゼロ以外の整数に変換されると、この文
       字列は TRUE として解釈されます。

    $ForEach
       ForEach-Object ループの列挙子を格納します。変数 $ForEach の値に、列挙子のプロパティ
       およびメソッドを使用できます。この変数は For ループの実行中のみ存在します。ループが完了す
       ると削除されます。
    
    $Home
       ユーザーのホーム ディレクトリの完全なパスを格納します。この変数は、
       %homedrive%%homepath% 環境変数と同等で、通常は C:\Documents and Settings\<user> です。

    $Host
       Windows PowerShell の現在のホスト アプリケーションを表すオブジェクトを格納します。
       この変数を使用すると、コマンド内で現在のホストを表すことも、ホストのプロパティを表示また
       は変更することもできます ($Host.version、$Host.CurrentCulture、
       $host.ui.rawui.setbackgroundcolor("Red") など)。

    $Input
       関数に渡される入力を格納する列挙子です。変数 $Input では大文字と小文字が区別され、この変
       数は関数およびスクリプト ブロックでのみ使用できます (スクリプト ブロックは本質的には、名
       前のない関数です)。関数の Process ブロックでは、現在パイプラインにあるオブジェクトが変
       数 $Input に格納されます。Process ブロックが完了すると、$Input の値は NULL になりま
       す。関数に Process ブロックがない場合、$Input の値は End ブロックに渡されます。このと
       き $Input には、関数へのすべての入力が格納されています。

    $LastExitCode
       最後に実行された Windows ベースのプログラムの終了コードを格納します。

    $Matches
       変数 $Matches は -match 演算子および -not match 演算子と共に使用されます。
       -match 演算子および -not match 演算子にスカラー入力を送信した場合に、いずれかによって一致
        が検出されると、ブール値が返され、一致した任意の文字列値のハッシュ テーブルが $Matches 自
        動変数に設定されます。-match 演算子の詳細については、
        「about_comparison_operators」を参照してください。
    
    $MyInvocation
       スクリプト、関数、スクリプト ブロックなど、現在のコマンドに関する情報を含むオブジェクト
       を格納します。スクリプトのパスおよびファイル名 ($myinvocation.mycommand.path) や関数の名前 
       ($myinvocation.mycommand.name) などのオブジェクトの情報を使用して、現在のコマンドを特定するこ
       とができます。これは、実行中のスクリプトの名前を検索する場合に特に便利です。

    $NestedPromptLevel
       現在のプロンプト レベルを格納します。値 0 は元のプロンプト レベルを示します。値は、入れ
       子のレベルに入るとインクリメントされ、そのレベルから出るとデクリメントされます。

       たとえば、$Host.EnterNestedPrompt メソッドを使用すると、Windows PowerShell は入れ子になった
       コマンド プロンプトを表示します。また、Windows PowerShell デバッガーでブレークポイン
       トに到達した場合も、Windows PowerShell は入れ子になったコマンド プロンプトを表示します。

       入れ子になったプロンプトに入ると、Windows PowerShell は現在のコマンドを一時停止し、実行
       コンテキストを保存し、変数 $NestedPromptLevel の値をインクリメントします。入れ子になったコ
       マンド プロンプトを追加で作成 (最大 128 のレベル) するか、元のコマンド プロンプトに戻すに
       は、コマンドを完了するか、"exit"と入力します。

       変数 $NestedPromptLevel を使用すると、プロンプト レベルを追跡できます。常に表示され
       るように、この値を含む代替の Windows PowerShell コマンド プロンプトを作成することができま
       す。

    $NULL
       NULL または空の値を格納します。文字列 "NULL" の代わりにこの変数を使用して、コマンドお
       よびスクリプトで NULL を表すことができます。空でない文字列またはゼロ以外の整数に変換され
       ると、この文字列は TRUE として解釈されます。

    $PID
       現在の Windows PowerShell セッションをホストしているプロセスのプロセス識別子 (PID) 
       を格納します。
  
    $Profile
       現在のユーザーおよび現在のホスト アプリケーションの Windows PowerShell プロファイルの完
       全なパスを格納します。この変数を使用すると、コマンドでプロファイルを表すことができます。
       たとえば、コマンドでこの変数を使用して、プロファイルが作成されたかどうかを判断できます。

           test-path $profile

       または、コマンドでこの変数を使用して、プロファイルを作成することができます。

           new-item -type file -path $pshome -force

       コマンドでこの変数を使用して、メモ帳でプロファイルを開くこともできます。

           notepad $profile

    $PSBoundParameters
       有効なパラメーターとそのパラメーター現在の値のディクショナリを格納します。この変数に値が
       あるのは、スクリプトや関数など、パラメーターが宣言されているスコープに限定されます。
       これを使用して、パラメーターの現在の値を表示または変更したり、別のスクリプトまたは関数に
       パラメーター値を渡したりすることができます。

       次にその例を示します。

         function test {
            param($a, $b)
            
            # ディクショナリ形式でパラメーターを表示します。
            $psboundparameters
             
            # $a および $b を指定して Test1 関数を呼び出します。
            test1 @psboundparameters
         }

    $PsCmdlet
       実行中のコマンドレットまたは高度な関数を表すオブジェクトを格納します。

       コマンドレットまたは関数コードでオブジェクトのプロパティとメソッドを使用して、
       使用の条件に対応することができます。たとえば、ParameterSetName プロパティには
       使用中のパラメーター セットの名前が格納され、ShouldProcess メソッドは WhatIf 
       および Confirm パラメーターをコマンドレットに動的に追加します。

       $PSCmdlet 自動変数の詳細については、「about_Functions_Advanced」を参照してください。

    $PsCulture
       オペレーティング システムで現在使用されているカルチャの名前を格納します。数値、通貨、日
       付などの項目の表示形式はカルチャによって決定されます。これは、システムの 
       System.Globalization.CultureInfo.CurrentCulture.Name プロパティの値です。システムの 
       System.Globalization.CultureInfo オブジェクトを取得するには、Get-Culture コマンドレットを使
       用します。

    $PSDebugContext
       この変数は、デバッグ中にデバッグ環境に関する情報を格納します。それ以外の場合は、NULL 
       値を格納します。つまりこれを使用して、デバッガーに制御があるかどうかを示すことができま
       す。この変数には、設定された場合は、Breakpoints プロパティおよび InvocationInfo プロパティを
       持つ PsDebugContext オブジェクトが格納されます。InvocationInfo プロパティには、Location プロパ
       ティなどの有用なプロパティがいくつかあります。Location プロパティは、デバッグ中のスクリプ
       トのパスを示します。


    $PsHome
       Windows PowerShell のインストール ディレクトリの完全なパスを格納します。これは通常、
       %windir%\System32\WindowsPowerShell\v1.0 です。Windows PowerShell ファイルのパスでこ
       の変数を使用できます。たとえば、概念説明のヘルプ トピックで "variable" という単語を
       検索するには、次のコマンドを入力します。

            select-string -pattern variable -path $pshome\*.txt

    $PSScriptRoot
       スクリプト モジュールが実行されているディレクトリを格納します。
       この変数を使用すると、スクリプトでモジュール パスを使用して他の
       リソースにアクセスできます。


    $PsUICulture
       オペレーティング システムで現在使用されているユーザー インターフェイス (UI) カルチャ
       の名前を格納します。UI カルチャは、メニューやメッセージなどのユーザー インターフェイ
       ス要素にどのテキスト文字列を使用するかを指定します。これは、システムの 
       System.Globalization.CultureInfo.CurrentUICulture.Name プロパティの値です。システム
       の System.Globalization.CultureInfo オブジェクトを取得するには、Get-UICulture コマン
       ドレットを使用します。


    $PsVersionTable
        現在のセッションで実行中の Windows PowerShell のバージョンについての詳細を表示する読み取
        り専用ハッシュ テーブルを格納します。このテーブルには次の項目があります。

	    CLRVersion:            共通言語ランタイム (CLR) のバージョン

	    BuildVersion:          現在のバージョンのビルド番号

    	    PSVersion:             Windows PowerShell のバージョン番号

            WSManStackVersion:     WS-Management スタックのバージョン番号

	    PSCompatibleVersions:  現在のバージョンと互換性がある Windows PowerShell のバージョン

            SerializationVersion:  シリアル化メソッドのバージョン

            PSRemotingProtocolVersion
                                   Windows PowerShell リモート管理プロトコルのバージョン

    $Pwd
       現在のディレクトリの完全なパスを表すパス オブジェクトを格納します。

    $Sender
        このイベントを生成したオブジェクトを格納します。この変数は、イベントの登録コマンド
        のアクション ブロック内でのみ設定されます。この変数の値は、Get-Event から返される 
        PSEventArgs (System.Management.Automation.PSEventArgs) オブジェクトの Sender プロパ
        ティでも参照できます。

    $ShellID
       現在のシェルの識別子を格納します。
      
    $SourceArgs
        処理中のイベントのイベント引数を表すオブジェクトを格納します。この変数は、イベント
        の登録コマンドのアクション ブロック内でのみ設定されます。この変数の値は、Get-Event 
        から返される PSEventArgs (System.Management.Automation.PSEventArgs) オブジェクトの 
        SourceArgs プロパティでも参照できます。

    $SourceEventArgs
        処理中のイベントの EventArgs から派生した 1 番目のイベント引数を表すオブジェクトを
        格納します。この変数は、イベントの登録コマンドのアクション ブロック内でのみ設定され
        ます。この変数の値は、Get-Event から返される PSEventArgs 
        (System.Management.Automation.PSEventArgs) オブジェクトの SourceArgs プロパティでも
        参照できます。

    $This
        スクリプト プロパティまたはスクリプト メソッドを定義するスクリプト ブロックにおいて、
        変数 $This は、拡張されているオブジェクトそのものを指します。

    $True
       TRUE を格納します。この変数を使用して、コマンドおよびスクリプトで TRUE を表すことがで
       きます。


関連項目
    about_Hash_Tables
    about_Preference_Variables
    about_Variables

      




目次