通过循环将多个变量读入数组

时间:2012-08-03 14:09:53

标签: powershell powershell-v2.0

我确信这很简单,但我只是想绕过它。我有一个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中有多少程序条目。我要做的是将所有软件放入某种阵列。然后我需要将它分隔成单独的变量(因为我需要将每个变量作为一个开关传递给命令行)。

有人能把我推向正确的方向吗?

1 个答案:

答案 0 :(得分: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