Share via


New-Variable

新しい変数を作成します。

構文

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

説明

コマンドレットは New-Variable 、PowerShell で新しい変数を作成します。 変数の作成時に、変数に値を割り当てることも、作成後に値の割り当てまたは変更を行うこともできます。

のパラメーター New-Variable を使用して、変数のプロパティを設定し、変数のスコープを設定し、変数がパブリックかプライベートかを判断できます。

通常は、変数名とその値 ( など $Var = 3) を入力して新しい変数を作成しますが、 コマンドレットを New-Variable 使用してそのパラメーターを使用できます。

例 1: 変数をCreateする

New-Variable days

このコマンドは、days という名前の新しい変数を作成します。 Name パラメーターを入力する必要はありません。

例 2: 変数をCreateして値を割り当てる

New-Variable -Name "zipcode" -Value 98033

このコマンドは、zipcode という名前の変数を作成し、値 98033 を割り当てます。

例 3: ReadOnly オプションを使用して変数をCreateする

PS C:\> New-Variable -Name Max -Value 256 -Option ReadOnly
PS C:\> New-Variable -Name max -Value 1024

New-Variable : A variable with name 'max' already exists.
At line:1 char:1
+ New-Variable -Name max -Value 1024
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceExists: (max:String) [New-Variable], SessionStateException
    + FullyQualifiedErrorId : VariableAlreadyExists,Microsoft.PowerShell.Commands.NewVariableCommand

PS C:\> New-Variable -Name max -Value 1024 -Force

この例では、 オプションNew-VariableReadOnly使用して変数が上書きされないように保護する方法を示します。

最初のコマンドは、Max という名前の新しい変数を作成し、その値を 256 に設定します。 値が の Option パラメーターを ReadOnly使用します。

2 番目のコマンドは、同じ名前の 2 番目の変数の作成を試みます。 その変数に読み取り専用オプションが設定されているため、このコマンドはエラーを返します。

3 番目のコマンドでは、 Force パラメーターを使用して、変数の読み取り専用保護をオーバーライドします。 この場合、コマンドは、同じ名前を持つ新しい変数を正常に作成できます。

例 4: 変数に複数のオプションを割り当てる

New-Variable -Name 'TestVariable' -Value 'Test Value' -Option AllScope,Constant

この例では、変数を作成し、 オプションと Constant オプションをAllScope割り当てます。これにより、変数は現在のスコープで使用でき、作成された新しいスコープは変更または削除できません。

例 5: プライベート変数をCreateする

このコマンドは、モジュール内のプライベート変数の動作を示しています。 モジュールには、Counter という名前の Get-Counter プライベート変数を持つ コマンドレットが含まれています。 このコマンドでは、 Visibility パラメーターと Private の値を使用して変数を作成します。

PS C:\> New-Variable -Name counter -Visibility Private

#Effect of private variable in a module.

PS C:\> Get-Variable c*

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

PS C:\> $counter
"Cannot access the variable '$counter' because it is a private variable"
At line:1 char:1
+ $counter
+ ~~~~~~~~
    + CategoryInfo          : PermissionDenied: (counter:String) [], SessionStateException
    + FullyQualifiedErrorId : VariableIsPrivate

PS C:\> Get-Counter
Name         Value
----         -----
Counter1     3.1415
...

サンプル出力は、プライベート変数の動作を示しています。 モジュールを読み込んだユーザーは、Counter 変数の値を表示または変更できませんが、モジュール内のコマンドによって Counter 変数を読み取ったり変更したりすることができます。

例 6: スペースを含む変数をCreateする

この例では、スペースを含む変数を作成できることを示します。 変数には、 コマンドレットを使用してアクセスすることも、変数を Get-Variable 中かっこで区切って直接アクセスすることもできます。

PS C:\> New-Variable -Name 'with space' -Value 'abc123xyz'

PS C:\> Get-Variable -Name 'with space'

Name                           Value
----                           -----
with space                     abc123xyz

PS C:\> ${with space}
abc123xyz

パラメーター

-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

-Force

コマンドレットが、既存の読み取り専用変数と同じ名前の変数を作成することを示します。

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

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

-Name

新しい変数の名前を指定します。

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

-Option

変数の Options プロパティの値を指定します。 このパラメーターの有効値は、次のとおりです。

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

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

セッション内のすべての変数の Options プロパティを表示するには、「」と入力します Get-Variable | Format-Table -Property name, options -AutoSize

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:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Scope

新しい変数のスコープを指定します。 このパラメーターの有効値は、次のとおりです。

  • Global - グローバル スコープで作成された変数には、PowerShell プロセス内のあらゆる場所でアクセスできます。
  • Local - ローカル スコープは現在のスコープを参照します。これは、コンテキストに応じて任意のスコープにすることができます。 Local は、scope パラメーターが指定されていない場合の既定のスコープです。
  • Script - スクリプト スコープで作成された変数には、作成されたスクリプト ファイルまたはモジュール内でのみアクセスできます。
  • 現在のスコープに対する相対的な数値 (0 からスコープの数、0 は現在のスコープ、1 はその親、2 は親スコープの親など)。 負の数は使用できません。

注意

パラメーターは、 の値 Privateも受け入れます。 Private は実際にはスコープではなく、変数のオプション設定です。 ただし、このコマンドレットで 値を Private 使用しても、変数の可視性は変更されません。 詳細については、「 about_Scopes」を参照してください。

Type:String
Position:Named
Default value:None
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返される変数など) やドライブのディスプレイには Variable: 表示されません。 プライベート変数の値を読み取りまたは変更するコマンドは、エラーを返します。 ただし、コマンドが、変数の定義元のセッションで記述されている場合は、プライベート変数を使用するコマンドを実行できます。

Type:SessionStateEntryVisibility
Accepted values:Public, Private
Position:Named
Default value:None
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

任意のオブジェクトを に New-Variableパイプできます。

出力

None

既定では、このコマンドレットは出力を返しません。

PSVariable

PassThru パラメーターを使用すると、このコマンドレットは新しい変数を表す PSVariable オブジェクトを返します。

メモ

PowerShell には、 の次のエイリアスが New-Variable含まれています。

  • すべてのプラットフォーム:
    • nv