New-Variable
新しい変数を作成します。
構文
New-Variable
[-Name] <String>
[[-Value] <Object>]
[-Description <String>]
[-Option <ScopedItemOptions>]
[-Visibility <SessionStateEntryVisibility>]
[-Force]
[-PassThru]
[-Scope <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
説明
コマンドレットはNew-Variable
、Windows PowerShellに新しい変数を作成します。 変数の作成時に、変数に値を割り当てることも、作成後に値の割り当てまたは変更を行うこともできます。
パラメーターを使用して、変数の New-Variable
プロパティを設定し、変数のスコープを設定し、変数がパブリックかプライベートかを判断できます。
通常は、変数名とその値を入力して新しい変数を作成します。ただし、 $Var = 3
コマンドレットを New-Variable
使用してそのパラメーターを使用できます。
例
例 1: 変数を作成する
New-Variable days
このコマンドは、days という名前の新しい変数を作成します。 Name パラメーターを入力する必要はありません。
例 2: 変数を作成して値を割り当てる
New-Variable -Name "zipcode" -Value 98033
このコマンドは、zipcode という名前の変数を作成し、値 98033 を割り当てます。
例 3: ReadOnly オプションを使用して変数を作成する
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
この例では、変数が ReadOnly
上書きされないように保護するオプション New-Variable
を使用する方法を示します。
最初のコマンドは、Max という名前の新しい変数を作成し、その値を 256 に設定します。 値が . の Option パラメーターを ReadOnly
使用します。
2 番目のコマンドは、同じ名前の 2 番目の変数の作成を試みます。 その変数に読み取り専用オプションが設定されているため、このコマンドはエラーを返します。
3 番目のコマンドでは、 Force パラメーターを使用して、変数の読み取り専用保護をオーバーライドします。 この場合、コマンドは、同じ名前を持つ新しい変数を正常に作成できます。
例 4: 変数に複数のオプションを割り当てる
New-Variable -Name 'TestVariable' -Value 'Test Value' -Option AllScope,Constant
次の使用例は、変数を作成し、変数とConstant
オプションをAllScope
割り当てて、変数が現在のスコープで使用できるようにし、作成された新しいスコープを変更または削除できないようにします。
例 5: プライベート変数を作成する
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 という名前の Get-Counter
プライベート変数を持つコマンドレットが含まれています。 このコマンドは、値が Private の Visibility パラメーターを使用して変数を作成します。
サンプル出力は、プライベート変数の動作を示しています。 モジュールを読み込んだユーザーは、Counter 変数の値を表示または変更できませんが、モジュール内のコマンドによって Counter 変数を読み取ったり変更したりすることができます。
例 6: スペースを使用して変数を作成する
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
このコマンドは、スペースを含む変数を作成できることを示しています。 変数には、コマンドレットを Get-Variable
使用するか、中かっこで変数を区切って直接アクセスできます。
パラメーター
-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
コマンドレットが、既存の読み取り専用変数と同じ名前の変数を作成することを示します。
既定では、変数にオプション値 ReadOnly
が Constant
指定されていない限り、変数を上書きできます。 詳細については、 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
- ローカル スコープは現在のスコープを参照し、コンテキストに応じて任意のスコープを指定できます。Script
- スクリプト スコープで作成された変数には、作成されたスクリプト ファイルまたはモジュール内でのみアクセスできます。Private
- プライベート スコープで作成された変数は、存在するスコープの外部にアクセスできません。 プライベート スコープを使用して、別のスコープで同じ名前のアイテムのプライベート バージョンを作成できます。- 現在のスコープに対する相対的な数値 (スコープの数を 0 から数え、0 は現在のスコープ、1 は親、2 は親スコープの親など)。 負の数値は使用できません。
Local
は、scope パラメーターが指定されていない場合の既定のスコープです。
詳細については、「 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 |
入力
値 New-Variable
をパイプできます。
出力
None or System.Management.Automation.PSVariable
PassThru パラメーターを使用すると、New-Variable
新しい変数を表す System.Management.Automation.PSVariable オブジェクトが生成されます。 それ以外の場合、このコマンドレットによる出力はありません。