次の方法で共有


変数プロバイダーについて

プロバイダー名

変数

ドライブ

Variable:

能力

ShouldProcess

簡単な説明

PowerShell 変数とその値へのアクセスを提供します。

詳細な説明

PowerShell 変数 プロバイダーを使用すると、現在のコンソールで PowerShell 変数を取得、追加、変更、クリア、および削除できます。

PowerShell 変数 プロバイダーは、自動変数、基本設定変数、作成する変数など、PowerShell によって作成される変数をサポートしています。

変数 ドライブは、変数オブジェクトのみを含むフラット名前空間です。 変数には子項目がありません。

変数 プロバイダーは、この記事で説明する次のコマンドレットをサポートしています。

PowerShell には、特に変数を表示および変更するために設計された一連のコマンドレットも含まれています。 変数 コマンドレット 使用する場合は、名前に Variable: ドライブを指定する必要はありません。 この記事では、Variable コマンドレットの操作については説明しません。

手記

PowerShell 式パーサーを使用して、コマンドレットを使用せずに変数の値を作成、表示、変更することもできます。 変数を直接操作する場合は、ドル記号 ($) を使用して名前を変数として識別し、代入演算子 (=) を使用して値を確立および変更します。 たとえば、$p = Get-Processp 変数を作成し、Get-Process コマンドの結果をその変数に格納します。

このプロバイダーによって公開される型

変数には、いくつかの異なる型のいずれかを指定できます。 ほとんどの変数は、PSVariable クラスのインスタンスになります。 その他の変数とその型を次に示します。

  • ? 変数は、QuestionMarkVariable クラスのインスタンスです。
  • null 変数は、NullVariable クラスのインスタンスです。
  • 最大カウント変数は、SessionStateCapacityVariable クラスのインスタンスです。
  • LocalVariable インスタンスには、次のような現在の実行に関する情報が含まれています。
    • MyInvocation
    • PSCommandPath
    • PSScriptRoot
    • PSBoundParameters
    • args
    • input

変数 プロバイダーは、Variable: ドライブ内のデータ ストアを公開します。 変数を操作するには、場所を Variable: ドライブ (Set-Location Variable:) に変更するか、他の PowerShell ドライブから作業できます。 別の場所から変数を参照するには、パスでドライブ名 (Variable:) を使用します。

Set-Location Variable:

ファイル システム ドライブに戻すには、ドライブ名を入力します。 たとえば、次のように入力します。

Set-Location C:

他の PowerShell ドライブから Variable プロバイダーを操作することもできます。 別の場所から変数を参照するには、パスに Variable: ドライブ名を使用します。

手記

PowerShell ではエイリアスを使用して、プロバイダー パスを使い慣れた方法で操作できます。 dirls といったコマンドは、Get-ChildItemのエイリアスとなっています。cdSet-Locationのエイリアスです。 pwd は、Get-Locationのエイリアスです。

変数の値の表示

現在のセッションのすべての変数を取得する

このコマンドは、現在のセッションのすべての変数とその値の一覧を取得します。 このコマンドは、任意の PowerShell ドライブから使用できます。

Get-ChildItem -Path Variable:

プロバイダー パスを使用して変数を取得する

このコマンドは、ドル記号 ($) で始まるプロバイダー パスを使用して変数値を取得します。 これは、変数名の前にドル記号 ($) を付けと同じ効果があります。

$Variable:HOME

ワイルドカードを使用して変数を取得する

このコマンドは、名前が "Max" で始まる変数を取得します。 このコマンドは、任意の PowerShell ドライブから使用できます。

Get-ChildItem -Path Variable:Max*

??の値を取得します。 変数

このコマンドでは、-LiteralPath パラメーターを使用して、? ドライブ内から Variable: 変数の値を取得します。 ? はパス内のワイルドカードですが、Get-ChildItem は、-LiteralPath パラメーターの値のワイルドカードを解決しようとはしません。

Get-ChildItem -LiteralPath ?

ReadOnly 変数と Constant 変数を取得する

このコマンドは、ReadOnly プロパティの Constant または の値を持つ変数を取得します。

Get-ChildItem -Path Variable: |
    Where-Object {
        $_.Options -match 'Constant' -or
        $_.Options -match 'ReadOnly'
    } |
    Format-List -Property Name, Value, Options

変数の作成

新しい変数を作成する

このコマンドは、services 変数を作成し、Get-Service コマンドの結果を格納します。 現在の場所は Variable: ドライブにあるため、-Path パラメーターの値は、現在の場所を表すドット (.) です。

Get-Service コマンドを括弧で囲むことで、変数が作成される前にそのコマンドが確実に実行されます。 かっこを使用しない場合、新しい変数の値は "Get-Service" 文字列です。

New-Item -Path . -Name services -Value (Get-Service)

絶対パスを使用して変数を作成する

このコマンドは、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:

こちらも参照ください