我正在学习PowerShell并尝试在循环中设置变量值。使用这些字符串:
$Apple = 'Apple'
$Banana = 'Banana'
$Orange = 'Orange'
我试图在循环中加入字符串:
$Fruits = @($Apple, $Banana, $Orange)
foreach ($Fruit in $Fruits)
{
$Fruit = $Fruit + '.' + "Test"
$Fruit
}
这在循环范围内有效。但是,如何永久地设置 $Apple, $Banana
和$Orange
的值?
答案 0 :(得分:1)
您可以使用Get-Variable
和Set-Variable
的组合。请记住,数组包含变量名称,而不是值。
$Apple = 'Apple'
$Banana = 'Banana'
$Orange = 'Orange'
$FruitVariables = @('Apple','Banana','Orange')
foreach ($Fruit in $FruitVariables)
{
Set-Variable -Name $Fruit -Value ((Get-Variable -Name $Fruit).Value + ".Test")
}
如果您只对设置数组中的值感兴趣,可以使用index:
$Fruits = @($Apple, $Banana, $Orange)
foreach ($i in 0..($Fruits.Count - 1))
{
$Fruits[$i] = $Fruits[$i] + '.' + "Test"
$Fruits[$i]
}
我觉得使用[ref]
可能会有一个更优雅的解决方案,但以上就是我所知道的范围。