powershell - 如何将具有相同名称的多个对象转换为一个具有总和的对象?
问题描述
在这里画一个奇怪的空白,因为我确定我以前做过。我有这些对象:
Name01 Capacity0
------ ---------
P1234 4096
P1234 4096
P1234 4096
我如何把它变成一个只包含所有“容量0”之和的对象?:
Name01 Capacity0
------ ---------
P1234 12288
我知道如何得到总和,例如:
...Select Name01,Capacity0 | Measure-Object -Property Capacity0 -sum
但是如果我像这样管道它,我会失去'name01'属性。
最好的方法是什么?可能带有组对象的东西?挣扎于我应该使用的逻辑。非常感激。
解决方案
是的,Name01
先分组,然后选择分组的 Sum:
... | Select Name01, Capacity0 `
| Group-Object -Property Name01 `
| Select `
@{Label = "Name01"; Expression={$_.Name}},
@{Label = "Sum"; Expression = {($_.Group | Measure-Object -Property Capacity0 -Sum).Sum}}
结果:
Name01 Sum
------ ---
P1234 12288
推荐阅读
- java - 为什么 JDBC 中的搜索功能在我的代码中不起作用?
- reactjs - 承诺调用中的承诺后如何正确更新组件的状态?
- jquery - 每当我将边距放在圆形或方形元素上时,元素就会消失。我能知道这是什么原因吗?
- android - 登录按钮不起作用 Android Kotlin
- asp.net - 如何设置它的返回类型并显示相关的烤面包机作为响应
- jquery - 使用 jQuery 和固定背景图像在 Safari 上滚动抖动
- objective-c - 获取一周的开始和结束日期。月份、周数和年份作为用户输入给出
- twitter-bootstrap - 将鼠标悬停在 href 上时显示 Font Awesome 图标右对齐,单击时带有单独的链接
- python - 如何在找到其最佳值的同时设置K的范围?
- c# - 石英 SimpleScheduleBuilder 在 c# 中具有基本时间和间隔