
記事記号:[me1516] 初版:2011/May/10

トピック
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