我尝试创建一个PowerShell脚本,该脚本使用响应JSON数据的API查询网站。然后我想获得所选的两列的总和。我是PowerShell脚本的新手,这看起来很简单,但我无法找到答案。希望有人可以提供帮助。
API返回的JSON示例:
{"getuserbalance":{"version":"1.0.0","runtime":4.3599605560303,"data":{"confirmed":0.05500048,"unconfirmed":0.00472891,"orphaned":0}}}
这是我到目前为止所做的:
$balance = 'www.example.com/index.php?page=api&action=getuserbalance'
Invoke-WebRequest $balance |
ConvertFrom-Json |
Select -expand getuserbalance |
select -expand data |
select confirmed, unconfirmed
这给了我:
confirmed unconfirmed
--------- -----------
0.05500048 0.00472891
不确定如何将这两者加在一起。我查看了Measure-Object cmdlet,但没有看到将两列相加的方法。
感谢您的帮助。
谢谢,
Dragnan
答案 0 :(得分:1)
如果您想仅输出和本身,请使用ForEach-Object
cmdlet:
[pscustomobject] @{ name = 'foo'; confirmed = 1; unconfirmed = 2 } |
ForEach-Object { $_.confirmed + $_.unconfirmed }
这会产生:
3
为每个输入对象调用传递给{ ... }
的脚本块(ForEach-Object
),脚本块内的自动变量$_
引用手头的输入对象。
要将结果分配给变量,只需将$sum =
放在管道之前;对于多个输入对象,$sum
将接收值数组。
运行Get-Help ForEach-Object
了解详情。
如果您想 添加包含的列,请使用计算属性:
[pscustomobject] @{ name = 'foo'; confirmed = 1; unconfirmed = 2 } |
Select-Object confirmed, unconfirmed, @{ n='combined'; e={ $_.confirmed + $_.unconfirmed } }
这会产生:
confirmed unconfirmed combined
--------- ----------- --------
1 2 3
要详细了解计算属性,请参阅我的this answer。