2014-07-25 59 views
0

我已經得到了很多變量,從A到Z如何變量添加到一個數組

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

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

當我鍵入$數組,它返回我:

$a 
$b 
$c 
... 
$z 

但我想這些變量,而不是 「$ A」 等的值

+0

什麼是你想要做什麼呢?你想達到什麼目的? –

+0

我只想將所有這些變量放在一個唯一的數組中。 – expirat001

+0

是否有一個特定的原因,您使用單個字符作爲變量名稱?這是否意味着你的情況? –

回答

2

我想他真正想要的是那些變量的內容添加到自己的陣列,它可以與Get-Variable做到這樣:

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

絕對!謝謝!我知道這是一種糟糕的方式,但我正在用Measure-Command等方法對「壞」和「好」做法進行比較。我絕對不會在生產中做到這一點,這僅僅是爲了個人目的。 – expirat001

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的容器之一(例如數組或散列表)最初存儲值,就可以使代碼更加優雅。

+0

感謝您的回覆。是的,它適用於哈希表,但我想保留我的原始結構,我想從A到Z生成變量,然後添加到數組並讀取它。 – expirat001

+0

@ expirat001 - 那麼,看看我的編輯。 – iCodez

0

嘗試哈希:

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

1.4.3 $Hash爲您提供:

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

是你在找什麼?