PowerShell Provider - Variable
 記事記号:[me1510] 初版:2011/May/10

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

プロバイダー名
    Variable
    
ドライブ
    Variable:
    
概要
    Windows PowerShell の変数とその値へのアクセスを提供します。
    
説明
    Windows PowerShell 変数プロバイダーを使用すると、現在のコンソールにある Wind
    ows PowerShell の変数を取得、追加、変更、クリア、および削除できます。
    
    Windows PowerShell 変数プロバイダーは、Windows PowerShell が作成する変数 (自
    動変数、設定変数、およびユーザーが作成する変数を含む) をサポートします。
    
    変数プロバイダーは、変数オブジェクトのみを含むフラットな名前空間です。変数に
    は子の項目がありません。
    
    ほとんどの変数が System.Management.Automation.PSVariable クラスのインスタン
    スです。ただし、いくつかの例外があります。たとえば、"?" 変数は QuestionMarkV
    ariable クラスのメンバーで、"MaximumVariableCount" 変数は SessionStateCapaci
    tyVariable クラスのメンバーです。
    
    変数プロバイダーは、Variable: ドライブにデータ ストアを公開します。変数を操作
    するには、場所を Variable: ドライブに変更するか ("set-location variable:")、
    別の Windows PowerShell ドライブから作業します。別の場所から変数を参照するに
    は、パスでドライブ名 (Variable:) を指定します。
    
    Windows PowerShell には、特に変数の表示と変更を行うために設計されたコマンドレ
    ットがあります。
    
    -- Get-Variable
    -- New-Variable
    -- Set-Variable
    -- Remove-Variable
    -- Clear-Variable
    
    これらのコマンドレットを使用するときは、名前に Variable: ドライブを指定する
    必要がありません。
    
    Variable プロバイダーは、Invoke-Item を除き、名前に Item という名詞が含まれ
    るすべてのコマンドレットをサポートします。Variable プロバイダーは、Get-Conte
    nt および Set-Content コマンドレットもサポートします。ただし、ItemProperty 
    という名詞を含むコマンドレット (ItemProperty コマンドレット)、およびあらゆる
    コマンドレットの Filter パラメーターはサポートされません。
    
    また、Windows PowerShell の式パーサーを使用すると、コマンドレットを使用せず
    に変数の値を作成、表示、および変更できます。変数を直接操作するときは、ドル記
    号 ($) を使用して変数であることを示し、代入演算子 (=) を使用して値の設定と変
    更を行います。たとえば、"$p = get-process" は "p" 変数を作成し、"get-process" 
    コマンドの結果を格納します。
    
    変数を変更した場合、その変更は現在のセッションにのみ影響します。変更を保存す
    るには、変更を Windows PowerShell プロファイルに追加するか、Export-Console 
    を使用して現在のコンソールを保存します。
    
機能
    
タスク
    タスク: Variable: ドライブに移動する
        
        -------------------------- 例 1 --------------------------
        
        このコマンドは、現在の場所を Variable: ドライブに変更します。このコマン
        ドは、Windows PowerShell の任意のドライブから使用できます。ファイル シス
        テム ドライブに戻るには、そのドライブ名を入力します。たとえば、「set-loc
        ation c:」と入力します。
        
        set-location variable:
        
    タスク: 変数の値を表示する
        
        -------------------------- 例 1 --------------------------
        
        このコマンドは、現在のセッションの全変数とその値の一覧を取得します。この
        コマンドは、Windows PowerShell の任意のドライブから使用できます。
        
        get-childitem -path variable:
        
        -------------------------- 例 2 --------------------------
        
        次のコマンドは、名前が "max" で始まる変数を取得します。このコマンドは、W
        indows PowerShell の任意のドライブから使用できます。
        
        get-childitem -path variable:max*
        
        
        Variable: ドライブから使用する場合は、パス内のドライブ名を省略できます。
        -------------------------- 例 3 --------------------------
        
        このコマンドは、コマンド ラインに WhatIfPreference 変数を入力してその値を
        取得します。
        
        変数名の先頭には、それが変数であることを示すドル記号 ($) が付けられていま
        す。Variable: というドライブ名は指定されていません。
        
        $WhatIfPreference
        
        -------------------------- 例 4 --------------------------
        
        このコマンドは、Get-ChildItem の LiteralPath パラメーターを使用して、Var
        iable: ドライブから "?" 変数の値を取得します。LiteralPath パラメーターの
        値にワイルドカード文字が含まれていても、Get-ChildItem はその解決を試みま
        せん。
        
        get-childitem -literalpath ?
        
        コマンドレットを使用せずに、特殊文字の名前を持つ変数の値を表示するには、
        ドル記号 ($) と変数名を入力します。たとえば、"?" 変数の値を表示するには、
        「$?」と入力します。
        -------------------------- 例 5 --------------------------
        
        このコマンドは、Options プロパティの値が "ReadOnly" または "Constant" で
        ある変数を取得します。
        
        get-childitem -path variable: | where-object {$_.options -match "Constant" 
        -or $_.options -match "ReadOnly"} | format-list -property name, value, op
        tions
        
    タスク: 新しい変数を作成する
        
        -------------------------- 例 1 --------------------------
        
        このコマンドは、"services" 変数を作成し、そこに Get-Service コマンドの結
        果を保存します。現在の場所は Variable: ドライブであるため、Path パラメー
        ターの値は現在の場所を表すピリオド (.) です。
        
        Get-Service コマンドはかっこで囲まれているため、変数が作成される前に確実
        に実行されます。かっこがないと、新しい変数の値は "Get-Service" という文
        字列になります。
        
        new-item -path . -name services -value (Get-Service)
        
        variable: ドライブ以外で使用する場合は、パスに Variable: ドライブ名を含
        めます。
        -------------------------- 例 2 --------------------------
        
        このコマンドは、"services" 変数を作成し、そこに Get-Service コマンドの結
        果を保存します。
        
        このコマンドでは、ドル記号 ($) を使用して変数であることを示し、代入演算子 
        (=) を使用して Get-Service コマンドの結果を新しく作成した変数に代入してい
        ます。
        
        $services = Get-Service
        
        値のない変数を作成するには、代入演算子を省略します。
        
    タスク: 変数のプロパティとメソッドを表示する
        
        -------------------------- 例 1 --------------------------
        
        次のコマンドは、Get-Item コマンドレットを使用してすべての変数を取得します。
        結果はパイプライン演算子 (|) によって Get-Member コマンドレットに渡され、
        オブジェクトのメソッドとプロパティが表示されます。
        
        get-item -path variable:* | get-member
        
        
        パイプを使用してオブジェクトのコレクション (Variable: ドライブの変数のコ
        レクションなど) を Get-Member に渡すと、Get-Member はコレクション内の各オ
        ブジェクトを個別に評価し、検出した各オブジェクトの型に関する情報を返しま
        す。
        
        Variable: ドライブのオブジェクトのコレクションに関する情報を取得するには、
        Get-Member の InputObject パラメーターを使用します。たとえば、「get-memb
        er -inputobject (get-item variable:*)」と入力します。InputObject が使用
        された場合、Get-Member はコレクション内のオブジェクトではなく、コレクシ
        ョンを評価します。
        -------------------------- 例 2 --------------------------
        
        このコマンドは、"home" 変数のプロパティの値を一覧表示します。Get-Item コ
        マンドレットを使用して、"home" 変数を表すオブジェクトを取得します。その
        結果は、パイプライン演算子 (|) によって Format-List コマンドに渡されます。
        Format-List コマンドは、ワイルドカード文字 (*) が指定された Property パ
        ラメーターを使用して、"home" 変数のすべてのプロパティの値を書式設定し、
        表示します。
        
        get-item variable:home | format-list -property *
        
    タスク: 変数のプロパティを変更する
        
        -------------------------- 例 1 --------------------------
        
        次のコマンドは、Rename-Item コマンドレットを使用して、"a" 変数の名前を 
        "processes" に変更します。
        
        rename-item -path variable:a -newname processes
        
        -------------------------- 例 2 --------------------------
        
        このコマンドは、Set-Item コマンドレットを使用して、ErrorActionPreference 
        変数の値を "Stop" に変更します。
        
        set-item -path variable:ErrorActionPreference -value Stop
        
        -------------------------- 例 3 --------------------------
        
        このコマンドは、ErrorActionPreference 変数の値を "Stop" に変更します。
        
        ドル記号 ($) を使用して変数であることを示し、代入演算子 (=) を使用して値
        を代入しています。
        
        $ErrorActionPreference = Stop
        
    タスク: 変数をコピーする
        
        -------------------------- 例 1 --------------------------
        
        このコマンドは、Copy-Item コマンドレットを使用して、"processes" 変数を 
        "old_processes" にコピーします。これで、"processes" 変数と同じ値を持つ 
        "old_processes" という新しい変数が作成されたことになります。
        
        copy-item -path variable:processes -destination variable:old_processes
        
        Variable: ドライブで実行する場合は、Path パラメーターの値からドライブ名
        を省略できます。
        -------------------------- 例 2 --------------------------
        
        このコマンドは、コマンドレットを使用せずに、"processes" 変数を "old_proc
        esses" にコピーします。ドル記号 ($) を使用して変数であることを示し、代入
        演算子を使用して $processes の値を old_processes に代入しています。
        
        $old_processes = $processes
        
    タスク: 変数を削除する
        
        -------------------------- 例 1 --------------------------
        
        このコマンドは、"serv" 変数を現在のセッションから削除します。このコマン
        ドは、Windows PowerShell の任意のドライブで使用できます。
        
        remove-variable -path variable:serv
        
        -------------------------- 例 2 --------------------------
        
        次のコマンドは、Options プロパティの値が Constant である変数を除くすべて
        の変数を現在のセッションから削除します。Force パラメーターが指定されてい
        ない場合、Options プロパティの値が ReadOnly の変数は削除されません。
        
        remove-item variable:* -force
        
    タスク: 変数の値を NULL に設定する
        
        -------------------------- 例 1 --------------------------
        
        次のコマンドは、Clear-Item コマンドレットを使用して "processes" 変数の値
        を NULL に変更します。
        
        clear-item -path variable:processes
        
        -------------------------- 例 2 --------------------------
        
        このコマンドは、null 値を代入することによって "processes" 変数をクリアし
        ます。NULL 値を表すのに $null 自動変数を使用しています。
        
        $processes = $null
            
動的パラメーター
    
メモ
    変数プロバイダーは動的パラメーターをサポートしません。

関連するリンク
    about_Variables 
    about_Automatic_Variables 
    about_Providers 
	
記事で解説しているパソコンの環境
 基本ソフト: Windows 7
 キーワード: Windows PowerShell、ヘルプ、Provider、Variable
ご利用数: 1862264
感想・要望・問い合わせは こちら