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: 変数を作成する
PS C:\> New-Variable days
このコマンドは、days という名前の新しい変数を作成します。 Name パラメーターを入力する必要はありません。
例 2: 変数を作成して値を割り当てる
PS C:\> 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
この例では、New-Variable の ReadOnly オプション
最初のコマンドは、Max という名前の新しい変数を作成し、その値を 256 に設定します。 値が ReadOnly の Option パラメーターを使用します。
2 番目のコマンドは、同じ名前の 2 つ目の変数を作成しようとします。 このコマンドは、変数に読み取り専用オプションが設定されているため、エラーを返します。
3 番目のコマンドでは、Force パラメーターを使用して、変数の読み取り専用保護をオーバーライドします。 この場合、同じ名前の新しい変数を作成するコマンドは成功します。
例 4: プライベート変数を作成する
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 変数はモジュール内のコマンドで読み取りおよび変更できます。
例 5: スペースを含む変数を作成する
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
コマンドレットを実行する前に確認を求めるメッセージが表示されます。
型: | SwitchParameter |
Aliases: | cf |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Description
変数の説明を指定します。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Force
コマンドレットが、既存の読み取り専用変数と同じ名前の変数を作成することを示します。
既定では、変数に ReadOnly または定数のオプション値がない限り、変数を上書きできます。 詳細については、Option パラメーターを参照してください。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Name
新しい変数の名前を指定します。
型: | String |
配置: | 0 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-Option
変数の Options プロパティの値を指定します。 このパラメーターに使用できる値は次のとおりです。
- 何一つ。 オプションを設定しません。 (既定値は None です)。
- ReadOnly。 削除できます。 Force パラメーターを使用する以外は変更できません。
- プライベート。 変数は、現在のスコープでのみ使用できます。
- AllScope。 変数は、作成された新しいスコープにコピーされます。
- 定数。 削除または変更できません。 定数は、変数を作成する場合にのみ有効です。 既存の変数のオプションを定数に変更することはできません。
セッション内のすべての変数の Options プロパティを表示するには、「Get-Variable | Format-Table -Property name, options -autosize
」と入力します。
型: | ScopedItemOptions |
指定可能な値: | None, ReadOnly, Constant, Private, AllScope, Unspecified |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-PassThru
作業中のアイテムを表すオブジェクトを返します。 既定では、このコマンドレットは出力を生成しません。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Scope
新しい変数のスコープを指定します。 このパラメーターに使用できる値は次のとおりです。
- グローバル。 グローバル スコープで作成された変数は、PowerShell プロセス内のあらゆる場所でアクセスできます。
- 地元の。 ローカル スコープは現在のスコープを参照します。これはコンテキストに応じて任意のスコープにすることができます。
- スクリプト。 スクリプト スコープで作成された変数には、作成されたスクリプト ファイルまたはモジュール内でのみアクセスできます。
- プライベート。 プライベート スコープで作成された変数は、存在するスコープの外部ではアクセスできません。 プライベート スコープを使用して、別のスコープで同じ名前のアイテムのプライベート バージョンを作成できます。
- 現在のスコープに対する相対的な数値 (0 からスコープの数、0 が現在のスコープ、1 がその親、2 が親スコープの親など)。 負の数は使用できません。
Local は、スコープ パラメーターが指定されていない場合の既定のスコープです。
詳細については、「about_Scopes」を参照してください。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Value
変数の初期値を指定します。
型: | Object |
配置: | 1 |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-Visibility
変数が作成されたセッションの外部で変数が表示されるかどうかを判断します。 このパラメーターは、他のユーザーに配信されるスクリプトとコマンドで使用するように設計されています。 このパラメーターに使用できる値は次のとおりです。
- 公共。 変数が表示されます。 (既定値は Public です)。
- プライベート。 変数は表示されません。
変数がプライベートの場合、変数の一覧 (Get-Variable によって返される変数など) や Variable: ドライブの表示には表示されません。 プライベート変数の値を読み取ったり変更したりするコマンドは、エラーを返します。 ただし、ユーザーは、変数が定義されたセッションでコマンドが書き込まれた場合に、プライベート変数を使用するコマンドを実行できます。
型: | SessionStateEntryVisibility |
指定可能な値: | Public, Private |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-WhatIf
コマンドレットを実行した場合の動作を示します。 コマンドレットは実行されません。
型: | SwitchParameter |
Aliases: | wi |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
入力
値をパイプ処理して、New-Variableを
出力
None or System.Management.Automation.PSVariable