Set-Variable

変数の値を設定します。 要求された名前の変数が存在しない場合は、変数を作成します。

構文

Set-Variable
   [-Name] <String[]>
   [[-Value] <Object>]
   [-Include <String[]>]
   [-Exclude <String[]>]
   [-Description <String>]
   [-Option <ScopedItemOptions>]
   [-Force]
   [-Visibility <SessionStateEntryVisibility>]
   [-PassThru]
   [-Scope <String>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

説明

コマンドレットは Set-Variable 、指定した変数に値を割り当てるか、現在の値を変更します。 変数が存在しない場合は、変数を作成します。

例 1: 変数を設定し、その値を取得する

これらのコマンドは、変数の値を$descA description設定し、変数の値を取得します。

Set-Variable -Name "desc" -Value "A description"
Get-Variable -Name "desc"

Name                           Value
----                           -----
desc                           A description

例 2: グローバルな読み取り専用変数を設定する

この例では、システム上のすべてのプロセスを含むグローバルな読み取り専用変数を作成し、変数のすべてのプロパティを表示します。

Set-Variable -Name "processes" -Value (Get-Process) -Option constant -Scope global -Description "All processes" -PassThru |
    Format-List -Property *

このコマンドは、コマンドレットを Set-Variable 使用して変数を作成します。 PassThru パラメーターを使用して新しい変数を表すオブジェクトを作成し、パイプライン演算子 (|) を使用してオブジェクトをコマンドレットにFormat-List渡します。 すべての (*) のFormat-List値を持つ Property パラメーターを使用して、新しく作成された変数のすべてのプロパティを表示します。

値は、 (Get-Process)変数に格納される前に実行されるように、かっこで囲まれています。 それ以外の場合、変数には単語 Get-Processが含まれます。

例 3: パブリック変数とプライベート変数を理解する

この例では、変数 Privateの可視性を . この変数は、必要なアクセス許可を使用すればスクリプトによる読み取りや変更が可能ですが、ユーザーには表示されません。

New-Variable -Name "counter" -Visibility Public -Value 26
$Counter

26

Get-Variable c*

Name                  Value
----                  -----
Culture               en-US
ConsoleFileName
ConfirmPreference     High
CommandLineParameters {}
Counter               26

Set-Variable -Name "counter" -Visibility Private
Get-Variable c*

Name                  Value
----                  -----
Culture               en-US
ConsoleFileName
ConfirmPreference     High
CommandLineParameters {}

$counter

"Cannot access the variable '$counter' because it is a private variable"

.\use-counter.ps1
#Commands completed successfully.

このコマンドは、変数の可視性を Private に変更する方法を示します。 この変数は、必要なアクセス許可を使用すればスクリプトによる読み取りや変更が可能ですが、ユーザーには表示されません。

パラメーター

-Confirm

コマンドレットの実行前に確認を求めるメッセージが表示されます。

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Description

変数の説明を指定します。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Exclude

このコマンドレットが操作から除外する項目の配列を指定します。 このパラメーターの値は、Path パラメーターを修飾します。 パス要素またはパターンを入力します (例: *.txt. ワイルドカードを使用できます。

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-Force

既存の読み取り専用変数と同じ名前を持つ変数の作成や、読み取り専用変数の値の変更を実行できます。

既定では、変数にオプション値またはオプション値ReadOnlyConstantがない限り、変数を上書きできます。 詳細については、 Option パラメーターを参照してください。

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Include

このコマンドレットが操作に含める項目の配列を指定します。 このパラメーターの値は 、Name パラメーターの対象になります。 名前や名前パターンを入力します (例: c*. ワイルドカードを使用できます。

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-Name

変数名を指定します。

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Option

変数の Options プロパティの値を指定します。

有効な値は次のとおりです。

  • None: オプションを設定しません。 (None 既定値です)。)
  • ReadOnly: 削除できます。 Force パラメーターを使用する場合を除き、変更することはできません。
  • Constant: 削除または変更できません。 Constant は、変数を作成する場合にのみ有効です。 既存の変数 Constantのオプションを . に変更することはできません。
  • Private: 変数は現在のスコープでのみ使用できます。
  • AllScope: 変数は、作成された新しいスコープにコピーされます。

これらの値は、フラグベースの列挙体として定義されます。 複数の値を組み合わせて、このパラメーターを使用して複数のフラグを設定できます。 値は、値の配列として、またはそれらの値のコンマ区切り文字列として Option パラメーターに渡すことができます。 このコマンドレットは、バイナリ OR 操作を使用して値を結合します。 配列として値を渡すことが最も簡単なオプションであり、値にタブ補完を使用することもできます。

Type:ScopedItemOptions
Accepted values:None, ReadOnly, Constant, Private, AllScope, Unspecified
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PassThru

新しい変数を表すオブジェクトを返します。 既定では、このコマンドレットによる出力はありません。

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Scope

変数のスコープを指定します。このパラメーターで許容される値は次のとおりです。

  • Global
  • Local
  • Script
  • Private
  • 現在のスコープに対する相対的な数値 (スコープの数を 0 から数え、0 が現在のスコープ、1 がその親)。

Local が既定値です。

詳細については、「 about_Scopes」を参照してください。

Type:String
Position:Named
Default value:Local
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Value

変数の値を指定します。

Type:Object
Position:1
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Visibility

変数を、作成元のセッションの外部で表示されるようにするかどうかを決定します。 このパラメーターは、他のユーザーに配信されるスクリプトとコマンドで使用するように設計されています。

有効な値は次のとおりです。

  • Public: 変数が表示されます。 (Public 既定値です)。)
  • Private: 変数は表示されません。

変数がプライベートの場合、変数は変数の一覧には表示されません(変数: ドライブから Get-Variable返される変数や、 変数ドライブ の表示など)。 プライベート変数の値を読み取りまたは変更するコマンドは、エラーを返します。 ただし、コマンドが、変数の定義元のセッションで記述されている場合は、プライベート変数を使用するコマンドを実行できます。

Type:SessionStateEntryVisibility
Accepted values:Public, Private
Position:Named
Default value:Public
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

コマンドレットの実行時に発生する内容を示します。 このコマンドレットは実行されません。

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

入力

Object

変数 Set-Variableの値を表すオブジェクトをパイプできます。

出力

None or System.Management.Automation.PSVariable

PassThru パラメーターを使用すると、Set-Variable新しい変数または変更された変数を表す System.Management.Automation.PSVariable オブジェクトが生成されます。 それ以外の場合、このコマンドレットによる出力はありません。