about_Variable_Provider
プロバイダー名
変数
ドライブ
Variable:
機能
ShouldProcess
簡単な説明
PowerShell 変数とその値へのアクセスを提供します。
詳しい説明
PowerShell 変数 プロバイダーを使用すると、現在のコンソールで PowerShell 変数を取得、追加、変更、クリア、および削除できます。
PowerShell 変数 プロバイダーは、自動変数、基本設定変数、作成する変数など、PowerShell によって作成される変数をサポートします。
変数ドライブは、 変数 オブジェクトのみを含むフラット名前空間です。 変数に子項目はありません。
変数プロバイダーでは、この記事で説明する次のコマンドレットがサポートされています。
PowerShell には、変数を表示および変更するために特に設計された一連のコマンドレットも含まれています。 Variable コマンドレットを使用する場合は、名前にドライブを指定するVariable:
必要はありません。 この記事では、 Variable コマンドレットの操作については説明しません。
注意
PowerShell 式パーサーを使用して、コマンドレットを使用せずに変数の値を作成、表示、変更することもできます。 変数を直接操作する場合は、ドル記号 ($
) を使用して名前を変数として識別し、代入演算子 (=
) を使用してその値を確立して変更します。 たとえば、 $p = Get-Process
は 変数を p
作成し、その中にコマンドの結果を Get-Process
格納します。
このプロバイダーによって公開される型
変数には、いくつかの異なる型のいずれかを指定できます。 ほとんどの変数は、 クラスの PSVariable
インスタンスになります。 その他の変数とその型を次に示します。
- 変数は
?
、 クラスのQuestionMarkVariable
インスタンスです。 - 変数は
null
、 クラスのNullVariable
インスタンスです。 - 最大カウント変数は、 クラスの
SessionStateCapacityVariable
インスタンスです。 LocalVariable
インスタンスには、次のような現在の実行に関する情報が含まれています。MyInvocation
PSCommandPath
PSScriptRoot
PSBoundParameters
args
input
変数ドライブの移動
変数プロバイダーは、ドライブ内のデータ ストアをVariable:
公開します。 変数を操作するには、場所をドライブ (Set-Location Variable:
) にVariable:
変更するか、他の PowerShell ドライブから作業できます。 別の場所から変数を参照するには、パスでドライブ名 (Variable:
) を使用します。
Set-Location Variable:
ファイル システム ドライブに戻るには、ドライブ名を入力します。 たとえば、次のように入力します。
Set-Location C:
他の PowerShell ドライブから 変数 プロバイダーを操作することもできます。 別の場所から変数を参照するには、パスでドライブ名 Variable:
を使用します。
注意
PowerShell ではエイリアスを使用して、プロバイダー パスを使い慣れた方法で操作できます。 や などのdir
ls
コマンドは Get-ChildItemcd
のエイリアスになりました。これは Set-Location のエイリアスです。 と pwd
は Get-Location のエイリアスです。
変数の値の表示
現在のセッションのすべての変数を取得する
このコマンドは現在のセッションのすべての変数とその値の一覧を取得します。 このコマンドは、任意の PowerShell ドライブから使用できます。
Get-ChildItem -Path Variable:
プロバイダー パスを使用して変数を取得する
このコマンドは、ドル記号 ($
) でプレフィックスが付いたプロバイダー パスを使用して変数値を取得します。 これは、変数名の前にドル記号 ($
) を付けることと同じ効果があります。
$variable:home
ワイルドカードを使用して変数を取得する
このコマンドは「max」で始まる名前を持つ変数を取得します。 このコマンドは、任意の PowerShell ドライブから使用できます。
Get-ChildItem -Path Variable:max*
の値を取得します。 変数
このコマンドでは、-LiteralPath
Get-ChildItem の パラメーターを使用して、ドライブ内から変数の?
値をVariable:
取得します。 ?
はパス内のワイルドカードですがGet-ChildItem
、 パラメーターの値のワイルドカードの解決は-LiteralPath
試みません。
Get-ChildItem -Literalpath ?
ReadOnly 変数と定数変数を取得する
このコマンドは、Options プロパティの または Constant
のReadOnly
値を持つ変数を取得します。
Get-ChildItem -Path Variable: | Where-Object {
$_.options -Match "Constant" `
-or $_.options -Match "ReadOnly"
} | Format-List -Property name, value, options
変数の作成
新しい変数をCreateする
このコマンドは、変数を services
作成し、その中にコマンドの結果を Get-Service
格納します。 現在の場所はドライブ内 Variable:
にあるため、パラメーターの -Path
値はドット (.
) で、現在の場所を表します。
コマンドのかっこを Get-Service
使用すると、変数が作成される前にコマンドが実行されます。 括弧がない場合、新しい変数の値は文字列「Get-Service」です。
New-Item -Path . -Name services -Value (Get-Service)
絶対パスを使用して変数をCreateする
このコマンドは変数を services
作成し、その中にコマンドの結果を Get-Service
格納します。
New-Item -Path Variable:services -Value Get-Service
値なしで変数を作成するには、代入演算子を省略します。
変数の変更
変数の名前を変更する
このコマンドでは、 コマンドレットを Rename-Item
使用して変数の名前を a
に processes
変更します。
Rename-Item -Path Variable:a -NewName processes
変数の値を変更する
このコマンドでは、 コマンドレットを Set-Item
使用して変数の値を ErrorActionPreference
"Stop" に変更します。
Set-Item -Path Variable:ErrorActionPreference -Value Stop
変数をコピーする
このコマンドでは、 コマンドレットを Copy-Item
使用して 変数を processes
に old_processes
コピーします。 これにより、変数と同じ値を持つ という名前 old_processes
の新しい変数が作成されます processes
。
Copy-Item -Path Variable:processes -Destination Variable:old_processes
変数の削除
このコマンドは、現在の serv
セッションから変数を削除します。 このコマンドは、任意の PowerShell ドライブで使用できます。
Remove-Variable -Path Variable:serv
-Force パラメーターを使用して変数を削除する
このコマンドは 、Options プロパティの値 Constant
が である変数を除き、現在のセッションからすべての変数を削除します。 パラメーターを -Force
指定しないと、 Options プロパティの値が である ReadOnly
変数は削除されません。
Remove-Item Variable:* -Force
変数の値を NULL に設定する
このコマンドでは、 コマンドレットを Clear-Item
使用して変数の値を processes
NULL に変更します。
Clear-Item -Path Variable:processes
パイプラインの使用
プロバイダー コマンドレットは、パイプライン入力を受け入れます。 パイプラインを使用すると、あるコマンドレットから別のプロバイダー コマンドレットにプロバイダー データを送信することで、タスクを簡略化できます。 プロバイダー コマンドレットでパイプラインを使用する方法の詳細については、この記事全体で提供されているコマンドレットリファレンスを参照してください。
ヘルプの表示
Windows PowerShell 3.0 より、プロバイダー コマンドレットのためにカスタマイズされたヘルプ トピックを取得できます。これはファイル システム ドライブでのプロバイダー コマンドレットの動作を説明します。
ファイル システム ドライブ用にカスタマイズされたヘルプ トピックを取得するには、ファイル システム ドライブで Get-Help コマンドを実行するか、Get-Help のパラメーターを-Path
使用してファイル システム ドライブを指定します。
Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path variable: