2012-08-03 75 views
3

我確信這很簡單,但我只是試圖圍繞它來包裹我的頭。我有一個看起來像這樣的XML文件:通過循環將多個變量讀入數組

<software> 
    <program>Bob</program> 
    <program>Reader</program> 
    <program>Hello</program> 
    <program>Java</program> 
</software> 

我再拉成這樣的腳本

[xml]$xml = Get-Content configuration.xml 
foreach($entry in $xml.software) 
{ 
$arrayofsoftware = $entry.program 
} 

首先要注意的是,我不知道程序的條目有多少是在XML中。我期望做的是將所有這些軟件放入某種數組中。然後我需要將它分離成單獨的變量(因爲我需要將每個變量作爲開關傳遞給命令行)。

任何人都可以把我朝正確的方向嗎?

回答

3

這將創建一個程序名稱的集合,並將它們分配給$ arrayofsoftware變量。

[array]$arrayofsoftware = $xml.software.program 

要創建一個單獨的變量每個值,使用New-Variable的cmdlet:

for($i=0; $i -lt $arrayofsoftware.count; $i++) 
{ 
    New-Variable -Name "arrayofsoftware$i" -Value $arrayofsoftware[$i] 
} 

# get a list of arrayofsoftwar variables 
Get-Variable arrayofsoftwar* 

Name       Value                                  
----       -----                                  
arrayofsoftware    {Bob, Reader, Hello, Java}                             
arrayofsoftware0    Bob                                  
arrayofsoftware1    Reader                                  
arrayofsoftware2    Hello                                  
arrayofsoftware3    Java  
+0

這正是我一直在尋找 - 感謝您的時間和精力! – Trinitrotoluene 2012-08-03 14:55:27