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