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

如何修改PowerShell脚本,仅导出CSV比对后的差异行

修改方案

你只需要在导出CSV之前加一层过滤逻辑,筛选出List1和List2布尔值不相等的行即可,修改后的完整脚本如下:

$List1 = (Get-Content .\one.csv)
$List2 = (Get-Content .\two.csv)

$FullList = $List1 + $List2 | select -uniq

$report = @()

foreach ($item in $FullList) {
    $ExistsInList1 = $List1.Contains($item)
    $ExistsInList2 = $List2.Contains($item)
    $report += New-Object psobject -Property @{Item=$item;List1=$ExistsInList1;List2=$ExistsInList2}
}

# 新增过滤逻辑:仅保留两个列表存在状态不一致的行
$report | Where-Object { $_.List1 -ne $_.List2 } | select Item, List1, List2 | Export-Csv -Path Report.csv -NoTypeInformation
  • 核心修改点是在导出前增加了Where-Object { $_.List1 -ne $_.List2 }过滤条件,-ne为PowerShell的不等于判断符,当某一项仅存在于单个文件时(状态为True-False或False-True)才会被保留,自动过滤掉两个文件都存在的True-True行。
  • 同时简化了冗余的if判断赋值,直接把Contains方法的返回布尔值赋值给变量即可,无需额外分支判断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 01:51:01