変数について
- 11/09/2020
- 読むのに9分
-
- S
- s
- q
簡単な説明
PowerShellで使用できる値を変数が格納する方法を説明します。
長い説明
PowerShell変数にすべてのタイプの値を格納できます。たとえば、コマンドの結果を保存したり、名前、パス、設定、値など、コマンドや式で使用される要素を保存したりします。
変数は、値が保存されるメモリの単位です。 PowerShellでは、変数は、$a
、iv id = “など、ドル記号($
)で始まるテキスト文字列で表されます。 efab94e5e4 “> 、または$my_var
。
変数名では大文字と小文字は区別されず、スペースや特殊文字を含めることができます。ただし、変数名には特殊文字とスペースを含めるのは使いにくいため、避ける必要があります。詳細については、特殊文字を含む変数名を参照してください。
PowerShellにはさまざまな種類の変数があります。
-
ユーザー作成変数:ユーザー作成変数はユーザーによって作成および管理されます。デフォルトでは、PowerShellコマンドラインで作成する変数は、PowerShellウィンドウが開いている間のみ存在します。PowerShellウィンドウを閉じると、変数は次のようになります。変数を保存するには、PowerShellプロファイルに追加します。グローバルスコープ、スクリプトスコープ、またはローカルスコープのスクリプトで変数を作成することもできます。
-
自動va riables:自動変数はPowerShellの状態を保存します。これらの変数はPowerShellによって作成され、PowerShellは精度を維持するために必要に応じて値を変更します。ユーザーはこれらの変数の値を変更できません。たとえば、
$PSHOME
変数は、PowerShellインストールディレクトリへのパスを格納します。詳細、リスト、および自動変数の説明については、about_Automatic_Variablesを参照してください。
-
設定変数:設定変数は、PowerShellのユーザー設定を格納します。これらの変数は、PowerShellによって作成され、デフォルト値が入力されます。ユーザーは、これらの変数の値。たとえば、
$MaximumHistoryCount
変数は、セッション履歴内のエントリの最大数を決定します。詳細、リスト、およびプリファレンス変数については、about_Preference_Variablesを参照してください。
変数の操作
新しい変数を作成するには、割り当てステートメントを使用して変数に値を割り当てます。使用する前に変数を宣言する必要はありません。すべての変数のデフォルト値は$null
です。
PowerShellセッション内のすべての変数のリストを取得するには、Get-Variable
。変数名は、変数の参照に使用される前のドル($
)記号なしで表示されます。
例:
変数はコマンドの結果を保存するのに役立ちます。
例:
To変数の値を表示し、変数名を入力し、その前にドル記号($
)を付けます。
例:
値を変更するには
次の例では、$MyVariable
変数の値を表示し、変数の値を変更してから、次のように表示します。新しい値。
変数の値を削除するには、Clear-Variable
コマンドレットを使用するか、値を変更しますue to $null
。
変数を削除するには、Remove-VariableまたはRemove-Itemを使用します。
変数のタイプ
整数、文字列、配列、ハッシュテーブルなど、あらゆるタイプのオブジェクトを変数に格納できます。また、プロセス、サービス、イベントログ、コンピューターを表すオブジェクト。
PowerShell変数は緩く型付けされているため、特定の種類のオブジェクトに限定されません。単一の変数にコレクションを含めることもできます。または、同時に異なるタイプのオブジェクトの配列。
変数のデータ型は、変数の値の.NET型によって決定されます。変数のオブジェクト型を表示するには、Get-を使用します。メンバー。
例:
type属性とキャスト表記を使用して、変数に特定のオブジェクトタイプまたはそのタイプに変換できるオブジェクトのみを含めることができます。別のタイプの値を割り当てようとすると、PowerShellはその値をそのタイプに変換しようとします。型を変換できない場合、代入ステートメントは失敗します。
キャスト表記を使用するには、変数名の前(代入ステートメントの左側)に型名を角かっこで囲んで入力します。次の例整数のみを含むことができる$number
変数、文字列のみを含むことができる$words
変数、および DateTimeオブジェクトのみを含めることができる変数。
コマンドおよび式での変数の使用
コマンドまたは式で変数を使用するには、変数名の前にドル記号($
)を付けて入力します。
変数名とドル記号が引用符で囲まれていない場合、または二重引用符("
)で囲まれている場合は、t変数の値はコマンドまたは式で使用されます。
変数名とドル記号が一重引用符("
)で囲まれている場合、変数名式で使用されます。
PowerShellでの引用符の使用の詳細については、about_Quoting_Rulesを参照してください。
この例では、$PROFILE
変数。PowerShellコンソールのPowerShellユーザープロファイルファイルへのパスです。
この中たとえば、PowerShellプロファイルinnotepad.exeを開くことができる2つのコマンドが示されています。二重引用符("
)マークのある例では、変数「svalue」を使用しています。
次の例では変数を文字テキストとして扱う一重引用符("
)マーク。
特殊文字を含む変数名
変数名はドルで始まります( $
)記号であり、英数字と特殊文字を含めることができます。変数名の長さは、使用可能なメモリによってのみ制限されます。
変数名には英数字のみを含め、下線(_
)文字。スペースやその他の特殊文字を含む変数名は使いにくいため、使用しないでください。
英数字の変数名にはこれらの文字を含めることができます。 :
- 次のカテゴリのユニコード文字:Lu、Ll、Lt、Lm、L o、またはNd。
- アンダースコア(
_
)文字。 - 疑問符(
?
)文字。
次のリストには、Unicodeカテゴリの説明が含まれています。詳細については、UnicodeCategoryを参照してください。
- Lu-UppercaseLetter
- Ll-LowercaseLetter
- Lt-TitlecaseLetter
- Lm-ModifierLetter
- Lo-OtherLetter
- Nd-DecimalDigitNumber
スペースまたは特殊文字を含む変数名を作成または表示するには、変数名をカーリーで囲みます。中括弧({}
)文字。中括弧は、PowerShellに変数名の文字をリテラルとして解釈するように指示します。
特殊文字の変数名には、次の文字を含めることができます。
たとえば、次のコマンドはsave-items
という名前の変数を作成します。変数名には中括弧({}
)が必要です。ハイフン(-
)特殊文字。
次のコマンドは、ProgramFiles(x86)
enviroで表されるディレクトリ内の子アイテムを取得しますnment変数。
中括弧を含む変数名を参照するには、変数名の中括弧を囲み、中括弧をエスケープするためにバックティック文字を使用します。たとえば、this{value}is
という名前の変数を作成するには、次のように入力します。
変数とスコープ
デフォルトでは、変数は「作成された」スコープでのみ使用できます。
たとえば、関数で作成した変数はのみ使用できます。関数内。スクリプトで作成した変数は、スクリプト内でのみ使用できます。スクリプトをドットソース化すると、変数はcurrentscopeに追加されます。詳細については、about_Scopesを参照してください。
変数のデフォルトスコープを変更するスコープ修飾子。次の式は、Computers
という名前の変数を作成します。変数は、スクリプトまたは関数で作成された場合でも、グローバルスコープを持ちます。
セッション外で実行されるスクリプトまたはコマンドの場合、変数を埋め込むにはUsing
スコープ修飾子が必要です。呼び出し側のセッションスコープからの値。これにより、セッション外のコードがそれらにアクセスできるようになります。
詳細については、about_Remote_Variablesを参照してください。
変数の保存
作成した変数それらを作成したセッションでのみ使用できます。 「セッションを閉じると失われます。
開始するすべてのPowerShellセッションで変数を作成するには、PowerShellプロファイルに変数を追加します。
たとえば、値を変更するにはすべてのPowerShellセッションで$VerbosePreference
変数を使用して、PowerShellプロファイルに次のコマンドを追加します。
追加できますこのコマンドをPowerShellプロファイルに追加するには、notepad.exeなどのテキストエディターで$PROFILE
ファイルを開きます。PowerShellプロファイルの詳細については、about_Profilesを参照してください。
変数:ドライブ
PowerShell変数プロバイダーは、ファイルシステムドライブのように見えて動作するVariable:
ドライブを作成しますが、セッション内の変数とその値が含まれています。
Variable:
ドライブに変更するには、次のコマンドを使用します。
一覧表示するにはVariable:
ドライブのアイテムと変数については、またはGet-ChildItem
コマンドレット。
特定の変数の値を取得するには、ファイルシステム表記を使用して、ドライブの名前と変数の名前を指定します。たとえば、$PSCulture
自動変数を取得するには、次のコマンドを使用します。
Variable:
ドライブとPowerShellVariableプロバイダーの詳細を表示するには、次のように入力します。
プロバイダーパスを使用した可変構文
プロバイダーパスの前にドル($
)記号を付けて、IContentCmdletProviderインターフェイスを実装するプロバイダーのコンテンツにアクセスできます。
次の組み込みPowerShellプロバイダーがこの表記をサポートしています。
- about_Environment_Provider
- about_Variable_Provider
- about_Function_Provider
- about_Alias_Provider
変数コマンドレット
PowerShellには、変数を管理するように設計された一連のコマンドレットが含まれています。
コマンドレットを一覧表示するには、次のように入力します。
特定のコマンドレットのヘルプを表示するには、次のように入力します。
コマンドレット名 | 説明 |
---|---|
Clear-Variable |
値を削除します変数の。 |
Get-Variable |
現在のコンソールの変数を取得します。 |
New-Variable |
新しい変数を作成します。 |
Remove-Variable |
変数とその値を削除します。 |
Set-Variable |
変数の値を変更します。 |
関連項目
about_Automatic_Variables
about_Environment_Variables