我已經得到了很多變量,從A到Z如何變量添加到一個數組
$a = "bike"
$b = "car"
$c = "road"
...
$z = "street"
$array = @()
97..122 | %{$array += "$"+[char]$_}
$array
當我鍵入$數組,它返回我:
$a
$b
$c
...
$z
但我想這些變量,而不是 「$ A」 等的值
我已經得到了很多變量,從A到Z如何變量添加到一個數組
$a = "bike"
$b = "car"
$c = "road"
...
$z = "street"
$array = @()
97..122 | %{$array += "$"+[char]$_}
$array
當我鍵入$數組,它返回我:
$a
$b
$c
...
$z
但我想這些變量,而不是 「$ A」 等的值
我想他真正想要的是那些變量的內容添加到自己的陣列,它可以與Get-Variable
做到這樣:
$a = "bike"
$b = "car"
$c = "road"
$array = @()
97..99 | %{$array += Get-Variable -name ([char]$_) -ValueOnly}
$array
絕對!謝謝!我知道這是一種糟糕的方式,但我正在用Measure-Command等方法對「壞」和「好」做法進行比較。我絕對不會在生產中做到這一點,這僅僅是爲了個人目的。 – expirat001
你可以使用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的容器之一(例如數組或散列表)最初存儲值,就可以使代碼更加優雅。
感謝您的回覆。是的,它適用於哈希表,但我想保留我的原始結構,我想從A到Z生成變量,然後添加到數組並讀取它。 – expirat001
@ expirat001 - 那麼,看看我的編輯。 – iCodez
嘗試哈希:
$Hash = @{
a = "bike"
b = "car"
c = "road"
...
z = "street"
}
1.4.3 $Hash
爲您提供:
Name Value
---- -----
c road
z street
b car
a bike
是你在找什麼?
什麼是你想要做什麼呢?你想達到什麼目的? –
我只想將所有這些變量放在一個唯一的數組中。 – expirat001
是否有一個特定的原因,您使用單個字符作爲變量名稱?這是否意味着你的情況? –