トピック about_Variables 簡易説明 Windows PowerShell で変数を使って値を格納する方法について説明します。 詳細説明 変数は、値が格納されるメモリーの単位です。Windows PowerShell では、変数はドル記号 ($) が先頭に付 いた 1 単語のテキスト文字列で表されます (例: $a、$process、$my_var)。 Windows PowerShell の変数には、いくつかの種類があります。 -- ユーザーによって作成される変数: ユーザーによって作成され、管理される変数です。既定では、 ユーザーが Windows PowerShell のコマンド ラインで作成した変数は、Windows PowerShell ウィンドウが開いている間のみ存在し、ウィンドウを閉じると失われます。変数を保存するには、 Windows PowerShell プロファイルに追加します。スクリプトの中で、global、script、local など のスコープを指定して変数を作成することもできます。 -- 自動変数: 自動変数には、Windows PowerShell の状態が格納されます。これらの変数は Windows PowerShell によって作成され、その値も Windows PowerShell によって必要に応じて変更されるの で、常に正確な値が保たれます。ユーザーは、この変数の値を変更できません。たとえば、 $PSHome 変数には、Windows PowerShell のインストール ディレクトリのパスが格納されます。 自動変数の詳細、一覧、および説明については、「about_Automatic_Variables」を参照してください。 -- ユーザー設定変数: ユーザーが設定した Windows PowerShell の環境設定が格納されます。この変数は Windows PowerShell によって作成され、既定値が設定されます。ユーザーは、この変数の値を変更できま す。たとえば、MaximumHistoryCount を設定することによって、セッション履歴の最大項目数を指定できま す。ユーザー設定変数の詳細、一覧、および説明については、「about_Preference_Variables」を参照してください。 変数の操作 Windows PowerShell セッションのすべての変数を一覧表示するには、次のように入力します。 get-variable 変数の値を表示するには、ドル記号 ($) に続けて変数の名前を入力します。その値が Windows PowerShell からの応答として表示されます。 $<variable-name> 次にその例を示します。 PS> $pshome C:\Windows\System32\WindowsPowerShell\v1.0 新しい変数を作成したり、変数の値を変更したりするには、次の形式で代入ステートメントを使用します。 $<variable> = <value> 次にその例を示します。 PS> $my-variable = 1, 2, 3 または PS> $VerbosePreference = "Continue" 変数を表すオブジェクトを取得するには、次のように、Get-Variable コマンドを使用します。 PS> get-variable pid 変数を使用するには、コマンドまたは式の中で変数名をドル記号 ($) 付きで入力します。コマンドまたは式が引 用符で囲まれていない場合、または、二重引用符 (") で囲まれている場合、そのコマンドまたは式では変数の値 が使用されます。コマンドが単一引用符 (') で囲まれている場合、その式では変数名が使用されます。 たとえば、1 つ目のコマンドは、$profile 変数 (Windows PowerShell ユーザー プロファイル ファイル のパス) の値を検索します。2 つ目のコマンドは、このファイルをメモ帳で開きます。 PS> $profile C:\Documents and Settings\User01\My Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 PS> Notepad $profile 変数には、どのような種類のオブジェクトでも格納できます。整数、文字列、配列、ハッシュ テーブルのほか、 プロセス、サービス、イベント ログ、コンピューターなどを表すオブジェクトを格納することもできます。 変数の保存 独自に作成した変数は、それを作成したセッションの中でしか使用できません。セッションを終了すると失われます。 変数を保存するには、Windows PowerShell プロファイルに追加します。プロファイルに追加された変数は、 自分が開いたすべての Windows PowerShell セッションに追加されます。 たとえば、すべての Windows PowerShell セッションを対象に、$VerbosePreference 変数の値を変更 するには、自分の Windows PowerShell プロファイルに次のコマンドを追加します。 $VerbosePreference = "Continue" このコマンドをプロファイルに追加するには、メモ帳などのテキスト エディターでプロファイル ファイルを 開いて追加するか、次のように Add-Content コマンドを使用して追加することもできます。 次のコマンドは、$VerbosePreference 変数の新しい値を "CurrentUser,AllHosts" プロファイルに追 加します。 add-content -path $profile.CurrentUserAllHosts -value '$VerbosePreference = "Continue"' Windows PowerShell のプロファイルの詳細については、「about_profiles」を参照してください。 特殊文字を使った変数名 中かっこを使用すると、Windows PowerShell に変数名を文字どおりに解釈させることができます。特に、ダ ッシュ、ピリオド、コロン、かっこなどの特殊文字を含んだ変数名を作成したり参照したりする際には、この方法 が役立ちます。 ハイフンを含んだ変数名を作成するには、変数名を中かっこで囲みます。"save-items" という名前の変数を作 成するコマンドを次に示します。 C:\PS> ${save-items} = "a", "b", "c" C:\PS>${save-items} a b c かっこを含んだ変数名を参照するには、変数名を中かっこで囲みます。 たとえば、次のコマンドは、"ProgramFiles(x86)" 環境変数のディレクトリ ストアから子項目を取得します。 C:\PS> Get-childitem ${env:ProgramFiles(x86)} 中かっこを含んだ変数名を参照するには、変数名を中かっこで囲んだうえで、バッククォート (エスケープ) 文 字を使用して、中かっこをエスケープします。たとえば、値が 1 である "this{value}is" という名前の変数 を作成するには、次のように入力します。 C:\PS> ${this`{value`}is} = 1 C:\PS> ${this`{value`}is} 1 Variable: ドライブ Windows PowerShell には "Variable:" というドライブがあります。見た目も動作もファイル システム のドライブと似ていますが、そこに格納されるのは、セッションの変数です。 Variable: ドライブに移動するには、次のように入力します。 set-location variable: (または "cd variable:") Variable ドライブで、その項目 (変数) を一覧表示するには、Get-ChildItem コマンドレットを使用しま す。次にその例を示します。 get-childitem (または "dir" または "ls") Variable: ドライブおよび Windows PowerShell Variable プロバイダーの詳細について参照するには、 次のように入力してください。 get-help variable 関連項目 about_Automatic_Variables about_Environment_Variables about_Preference_Variables about_Scopes