如何使用 PowerShell 合并两个 csv 文件

Dar*_*oNe 3 csv powershell powershell-3.0

我有两个 .CSV 文件,其中包含有关我工作地点的员工的信息。第一个文件 (ActiveEmploye.csv) 包含大约 70 个不同字段和 2500 个条目。另一个 (EmployeEmail.csv) 有四个字段(名字、姓氏、电子邮件、全名)和 700 个条目。这两个文件都有共同的 FullName 字段,这是我可以用来比较每个文件的唯一字段。我需要做的是将电子邮件地址(来自 EmployeEmail.csv)添加到 ActiveEmploye.csv 中相应的员工。而且,对于那些没有电子邮件地址的人,该字段可以留空。

我尝试使用几天前在互联网上找到的 Join-Object 函数,但第一个 csv 文件包含太多该函数可以处理的字段。

任何建议都将受到高度赞赏!

Bar*_*ekB 5

剥这只猫的皮可能有几种方法。我会尝试这个:

Import-Csv EmployeeEmail.csv | ForEach-Object -Begin {
    $Employees = @{}
} -Process {
    $Employees.Add($_.FullName,$_.email)
}

Import-Csv ActiveEmployees.csv | ForEach-Object {
    $_ | Add-Member -MemberType NoteProperty -Name email -Value $Employees."$($_.FullName)" -PassThru
} | Export-Csv -NoTypeInformation Joined.csv
Run Code Online (Sandbox Code Playgroud)

  • 嗯,首先出现的是:您确定 csv 中的字段是“全名”而不是类似的内容 - 例如带有尾随空格...?我用一些测试代码尝试过它,它对我有用,但是 csv 字段中的尾随空格让我陷入了......很久以前......所以我的第一个猜测。电子邮件字段相同。 (2认同)