【发布时间】:2020-02-04 21:22:43
【问题描述】:
我想要遍历一组 XML,然后将它们传递给可以打印的变量。
以下是数据示例:
<applications>
<size>75</size>
<application>
<name>Applications 1</name>
<path>/Applications/Utilities/Application 1</path>
<version>10.14</version>
</application>
<application>
<name>Application 2</name>
<path>/Applications/Utilities/Application 2</path>
<version>6.3.9</version>
</application>
</applications>
我曾在尝试输出时使用ForEach-Object,但无济于事。
[string]$applicationProperties = $API.applications.application | ForEach-Object {
$_.name
$_.path
$_.version
}
这可行,但将它们全部放在一行上,我希望它们打印在单独的行上,但我无法为 $_ 变量添加前缀。
例如所以我想将名称/路径/版本数据保存到变量中
[string]$applicationProperties = $API.applications.application | ForEach-Object {
[string]$name_var = $_.name
[string]$path_var = $_.path
[string]$version_var = $_.variable
}
这给了我一个“应用程序”,但不是所有可能的对象。还提到即使我放下$name_var 它也没有访问该变量?我需要做些什么来访问该变量吗?
创建了这个$applicationProperties = "Application Name $($applicationProperties[0].name)"
但是当调用$applicationProperties 时,我得到Missing '=' operator after key in hash literal.
【问题讨论】:
-
[string]$applicationProperties->[string[]]$applicationProperties -
我个人会避免在 PowerShell 脚本中严格输入,除非有充分的理由强制执行类型。
-
@AnsgarWiechers 很高兴知道,您有推荐的解决方案吗?
-
我以为我刚刚做到了。
-
@AnsgarWiechers 所以一旦我做出了改变,我将如何访问这些变量?我是 PowerShell 新手,很抱歉这些问题。
标签: xml powershell api foreach