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 的总和作为对象中的自定义 属性。