如何将变量添加到数组中

时间:2014-07-25 16:26:57

标签: powershell powershell-v2.0

我从A到Z有很多变量。

$a = "bike"
$b = "car"
$c = "road"
...
$z = "street"

$array  = @()
97..122 | %{$array += "$"+[char]$_}
$array

当我输入$ array时,它会返回我:

$a
$b
$c
...
$z

但是我想得到这些变量的值,而不是" $ a"等等。

3 个答案:

答案 0 :(得分:2)

我认为他真正想要的是将这些变量的内容添加到他的数组中,这可以用Get-Variable完成:

$a = "bike"
$b = "car"
$c = "road"
$array  = @()
97..99 | %{$array += Get-Variable -name ([char]$_) -ValueOnly}
$array

答案 1 :(得分:0)

您可以使用Get-Variable来访问变量:

97..122 | %{$array += Get-Variable ([char]$_) -Value}

但我可以建议采用不同的方法吗?而不是制作几十个简单的变量,为什么不使用hashtable?类似的东西:

$table = @{ 
    "a" = "bike"
    "b" = "car"
    "c" = "road"
    ...
    "z" = "street"
}

然后,您可以通过索引来访问这些值:

$table["a"]  # > "bike"
$table["c"]  # > "car"

每当有许多形式为$var1$var2$var3$vara$varb$varc的简单变量时应停下来重新考虑你的设计。通常,只需使用PowerShell的容器之一(例如数组或散列表)来初始存储值,就可以使代码更加优雅。

答案 2 :(得分:0)

尝试哈希:

$Hash = @{
    a = "bike"
    b = "car"
    c = "road"
...
    z = "street"
}

输出$Hash会给您:

Name                           Value    
----                           -----
c                              road    
z                              street    
b                              car    
a                              bike

这就是你要找的东西吗?