我从A到Z有很多变量。
$a = "bike"
$b = "car"
$c = "road"
...
$z = "street"
$array = @()
97..122 | %{$array += "$"+[char]$_}
$array
当我输入$ array时,它会返回我:
$a
$b
$c
...
$z
但是我想得到这些变量的值,而不是" $ a"等等。
答案 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
这就是你要找的东西吗?