如何在 PowerShell 中动态调用变量?
How can I dynamically call a variable in PowerShell?
我正在通过组合现有变量来创建新变量名,但是,我找不到通过使用现有变量来动态引用新变量名的方法。
$count = 1
New-Variable -Name "Jobname$Count"
我希望在使用 $JobName$Count 动态解析时得到“Jobname1”。
我尝试了引用变量的不同组合,但 none 行得通:
$JobName$($Count)
$JobName"$Count"
$JobName"$($Count)"
$JobName"($Count)"
我怎样才能做到这一点?
您已经知道如何使用 New-Variable
或 Set-Variable
动态创建新变量。如果你想动态获取你的变量,你可以使用 Get-Variable
或 $ExecutionContext.SessionState.PSVariable.Get(..)
或者更简单的方法是使用 -PassThru
:
$count = 1
$var = New-Variable -Name "Jobname$Count" -Value 'example' -PassThru
$var
Name Value
---- -----
Jobname1 example
Get-Variable "Jobname$Count"
Name Value
---- -----
Jobname1 example
$ExecutionContext.SessionState.PSVariable.Get("Jobname$Count")
Name Value
---- -----
Jobname1 example
我正在通过组合现有变量来创建新变量名,但是,我找不到通过使用现有变量来动态引用新变量名的方法。
$count = 1
New-Variable -Name "Jobname$Count"
我希望在使用 $JobName$Count 动态解析时得到“Jobname1”。
我尝试了引用变量的不同组合,但 none 行得通:
$JobName$($Count)
$JobName"$Count"
$JobName"$($Count)"
$JobName"($Count)"
我怎样才能做到这一点?
您已经知道如何使用 New-Variable
或 Set-Variable
动态创建新变量。如果你想动态获取你的变量,你可以使用 Get-Variable
或 $ExecutionContext.SessionState.PSVariable.Get(..)
或者更简单的方法是使用 -PassThru
:
$count = 1
$var = New-Variable -Name "Jobname$Count" -Value 'example' -PassThru
$var
Name Value
---- -----
Jobname1 example
Get-Variable "Jobname$Count"
Name Value
---- -----
Jobname1 example
$ExecutionContext.SessionState.PSVariable.Get("Jobname$Count")
Name Value
---- -----
Jobname1 example