You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell处理CSV按Direction统计Inbound和Outbound的MessageCount总和

PowerShell 处理CSV统计邮件数量解决方案

基础实现(适配新手易理解的foreach逻辑)

你之前foreach输出不符合预期,90%的概率是没有将MessageCount字段从字符串转换为数值类型,CSV导入后所有字段默认是字符串格式,直接累加会触发字符串拼接而非数值求和。
完整可运行代码:

# 替换为你本地CSV的实际路径
$csv = Import-Csv -Path "C:\path\to\your\file.csv"

# 提取统一的邮箱地址(你提到Name字段全部相同)
$mailAddr = $csv[0].Name

# 初始化统计变量
$inboundTotal = 0
$outboundTotal = 0

# 遍历累加
foreach ($item in $csv) {
    $count = [int]$item.MessageCount
    if ($item.Direction -eq 'Inbound') {
        $inboundTotal += $count
    }
    elseif ($item.Direction -eq 'Outbound') {
        $outboundTotal += $count
    }
}

# 输出关联邮箱的最终结果
[PSCustomObject]@{
    邮箱地址 = $mailAddr
    Inbound总和 = $inboundTotal
    Outbound总和 = $outboundTotal
}

简化写法(用内置命令省略手动判断逻辑)

如果不想自己写循环判断,可直接用Group-Object和Measure-Object实现统计:

$csv = Import-Csv -Path "C:\path\to\your\file.csv"
$groups = $csv | Group-Object Direction -AsHashTable

[PSCustomObject]@{
    邮箱地址 = $csv[0].Name
    Inbound总和 = ($groups['Inbound'].MessageCount | ForEach-Object { [int]$_ } | Measure-Object -Sum).Sum
    Outbound总和 = ($groups['Outbound'].MessageCount | ForEach-Object { [int]$_ } | Measure-Object -Sum).Sum
}

内容的提问来源于stack exchange,提问作者Niquuu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 15:18:03