PowerShell HelpFile - about_Automatic_Variables
 記事記号:[me1516] 初版:2011/May/10

この文書は、Windows PowerShellのヘルプ機能で表示される内容を再構成したものです。

トピック
    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\
        です。

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

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

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

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

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

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

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

       変数 $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 PowerS
       hell ファイルのパスでこの変数を使用できます。たとえば、概念説明のヘルプ 
       トピックで "variable" という単語を検索するには、次のコマンドを入力します。

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

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

    $PsUICulture
       オペレーティング システムで現在使用されているユーザー インターフェイス (U
       I) カルチャの名前を格納します。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 PowerS
                                   hell のバージョン

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

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

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

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

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

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

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

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

関連項目
    about_Hash_Tables
    about_Preference_Variables
    about_Variables
	
記事で解説しているパソコンの環境
 基本ソフト: Windows 7
 キーワード: Windows PowerShell、ヘルプ、HelpFile、about_Assignment_Operators
ご利用数: 1859810
感想・要望・問い合わせは こちら