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 中有多少程序条目。我要做的是将所有这些软件放入某种数组中。然后我需要稍后将它分成单独的变量(因为我需要将每个变量作为开关传递到命令行)。

谁能把我扔到正确的方向?

4

1 回答 1

3

这将创建一组程序名称并将它们分配给 $arrayofsoftware 变量。

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

要为每个值创建单独的变量,请使用New-Variablecmdlet:

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      
于 2012-08-03T14:38:29.857 回答