我目前正在编写一个解析 XML 文件的 PowerShell 脚本,它将一些解析的值保存为变量以供以后使用。
例如,假设我的 XML 如下所示,
<head>
<foo>
<bar id="1" status="dead">
<baz>
<qux>Hello World 001</qux>
</baz>
</bar>
<bar>
<baz>
<qux>Hello World 002</qux>
</baz>
</bar>
</foo>
<foo>
<bar id="2" status="dead">
<baz>
<qux>Goodbye World 001</qux>
</baz>
</bar>
<bar>
<baz>
<qux>Goodbye World 002</qux>
</baz>
</bar>
</foo>
</head>
目前,我的脚本如下所示,
[xml]$report = Get-Content ./helloworld.xml
$foo_sub_length = $report.head.foo.length - 1
$bar_sub_length = $report.head.foo[$foo_sub_length].bar.length - 1
$foo_looper = 0
$bar_looper = 0
不过,到目前为止,这部分是有效的,因为我想从每个单独的 foo 中提取 id 号或 qux 字符串,所以我想做类似于以下内容的操作(伪代码):
do {
do {
$foo($foo_looper)_id = $report.head.foo[$foo_looper].bar[$bar_looper].baz.id
$foo($foo_looper)_bar($bar_looper)_qux = $report.head.foo[$foo_looper].bar[$bar_looper].baz.qux
$bar_looper = $bar_looper + 1
while $bar_looper <= $bar_sub_length
}
$foo_looper = $foo_looper + 1
while $foo_looper <= $foo_sub_length
}
我意识到这可能没有任何意义,或者我可能不清楚,但我需要一些帮助。本质上,有没有一种方法可以增加变量的名称,例如 $foo1、$foo2、$foo3 等,而不更改其值?本质上,
> $bar = 1
> $foo($bar) = hello
> $bar + 1
> $foo($bar) = world
> $foo(1)
hello
> $foo(2)
world
Use the 新变量 http://technet.microsoft.com/en-us/library/hh849913.aspx cmdlet.
E.g.
$bar = 1
New-Variable "foo$bar" "Hello,"
$bar = $bar + 1
New-Variable "foo$bar" "World!"
"$foo1 $foo2"
应该给你
Hello, World!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)