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

使用PowerShell对比行值合并不同行数CSV文件的方法咨询

PowerShell合并同主键CSV文件解决方案

现有代码问题排查

  • 列定义错误:Select-Object参数里重复写了Service_StatusA,遗漏了Service_StatusB,末尾还有多余逗号,导致生成的行对象结构不符合预期
  • 丢失无匹配行:只有匹配到第二个CSV的行才会加入结果,第一个CSV里存在但第二个CSV里没有的条目(比如示例中的Data Usage)直接被丢弃
  • 隐式匹配问题:如果两个CSV的Name列存在首尾空格或大小写差异,会导致本应匹配的条目匹配失败

修正后可用代码

$file1 = Import-Csv -Path .\PC1.csv
$file2 = Import-Csv -Path .\PC2.csv
# 直接用循环输出赋值数组,避免+=反复创建数组的性能损耗
$report = foreach ($line in $file1) 
{
    # 匹配时自动去除首尾空格,避免格式问题导致匹配失败
    $match = $file2 | Where-Object {$_.Name.Trim() -eq $line.Name.Trim()}
    # 构造输出对象,无匹配的StatusB列自动留空
    [PSCustomObject]@{
        Name = $line.Name
        Service_StatusA = $line.Service_StatusA
        Service_StatusB = if($match){$match.Service_StatusB}else{$null}
    }
}
# 增加UTF8编码避免中文名称乱码
$report | Export-Csv -Path .\mergetemp.csv -NoTypeInformation -Force -Encoding UTF8

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 21:06:04