Powershell csv计算总和
Powershell csv calculate total sum
我目前正在研究 powershell。 Powershell 对我来说是新手,所以很难理解这个。
我的 csv 文件中有三个 headers。
Headers 包括:名称、消息数和方向。
名称是电子邮件地址,这些地址都是一样的。方向有“入站”和“出站”。 MessageCount 是一堆不同的数字:
Overview
我想计算这些数字,以便在这些行上获得“入站”和“出站”总计和电子邮件。
我正在尝试 foreach 循环出 MessageCount 并将它们一起计算它只会给我这样的输出:
MessageCount
尝试这样的事情:
$data = Import-Csv "path-to-your-csv-file";
$data | group Name
| select Name,
@{n = "Inbound"; e = {
(($_.Group | where Direction -eq "Inbound").MessageCount | Measure-Object -Sum).Sum }
},
@{n = "Outbound"; e = {
(($_.Group | where Direction -eq "Outbound").MessageCount | Measure-Object -Sum).Sum }
}
代码解释
group Name
按 属性 Name
对结果进行分组 - 在本例中为电子邮件地址。更多here
select
允许从对象 select 属性 或使用 @{n="";e={}}
创建自定义。更多here
($_.Group | where Direction -eq "Outbound").MessageCount
从组中获取数据,搜索 Direction
等于 Outbound
的行,然后从找到的行中获取 MessageCount
。
Measure-Object -Sum
采用数组并创建具有属性的对象,即。 sum
数组中的值,所以我们得到 MessageCount
和 return 的总和作为对象中的自定义 属性。
我目前正在研究 powershell。 Powershell 对我来说是新手,所以很难理解这个。
我的 csv 文件中有三个 headers。
Headers 包括:名称、消息数和方向。
名称是电子邮件地址,这些地址都是一样的。方向有“入站”和“出站”。 MessageCount 是一堆不同的数字:
Overview
我想计算这些数字,以便在这些行上获得“入站”和“出站”总计和电子邮件。
我正在尝试 foreach 循环出 MessageCount 并将它们一起计算它只会给我这样的输出:
MessageCount
尝试这样的事情:
$data = Import-Csv "path-to-your-csv-file";
$data | group Name
| select Name,
@{n = "Inbound"; e = {
(($_.Group | where Direction -eq "Inbound").MessageCount | Measure-Object -Sum).Sum }
},
@{n = "Outbound"; e = {
(($_.Group | where Direction -eq "Outbound").MessageCount | Measure-Object -Sum).Sum }
}
代码解释
group Name
按 属性 Name
对结果进行分组 - 在本例中为电子邮件地址。更多here
select
允许从对象 select 属性 或使用 @{n="";e={}}
创建自定义。更多here
($_.Group | where Direction -eq "Outbound").MessageCount
从组中获取数据,搜索 Direction
等于 Outbound
的行,然后从找到的行中获取 MessageCount
。
Measure-Object -Sum
采用数组并创建具有属性的对象,即。 sum
数组中的值,所以我们得到 MessageCount
和 return 的总和作为对象中的自定义 属性。