Powershell用于比较csv';s和apend信息

Powershell用于比较csv';s和apend信息,powershell,csv,compare,append,Powershell,Csv,Compare,Append,我有两个CSV文件。一个是“术语表”,每天都在变化。它有多个标题,其中可能包含或不包含任何信息,但也包括电子邮件地址。另一个CSV是“WebCmaster”。这有两列:电子邮件地址和它来自的webcc。我正在将电子邮件地址与termlist的电子邮件地址进行比较。我希望输出也显示webcc列,但我想我遗漏了一些东西。我的代码如下: if (Test-Path C:\Scripts\termlist.csv) { $termlist = import-csv "c:\scrip

我有两个CSV文件。一个是“术语表”,每天都在变化。它有多个标题,其中可能包含或不包含任何信息,但也包括电子邮件地址。另一个CSV是“WebCmaster”。这有两列:电子邮件地址和它来自的webcc。我正在将电子邮件地址与termlist的电子邮件地址进行比较。我希望输出也显示webcc列,但我想我遗漏了一些东西。我的代码如下:

  if (Test-Path C:\Scripts\termlist.csv) 
  {
     $termlist = import-csv "c:\scripts\termlist.csv" -header("User Name", "Brazil_inst", "Emp Num", "Emp Name", "Email Address", "Term Dt", "Plant", "Deptt", "Location", 
      "Region", "Job Name", "Sup. Name", "Phone Number") | where-Object {$_."Email Address" -ne ''} | sort "Email Address"

  if (Test-Path C:\Scripts\masterwebcc.csv)
     {    
    $webcclist = import-csv "c:\scripts\masterwebcc.csv" | sort "Email Address" -unique
    Compare-Object $termlist $webcclist -property "Email Address" -IncludeEqual 

    Remove-Item "c:\scripts\termlist.csv"

    get-childitem C:\Users\josh\Downloads -include Consolidated*.xls -recurse | foreach ($_) {remove-item $_.fullname}

      } else {Write-warning "C:\Scripts\masterwebcc does not exist"}

   } else { Write-warning "C:\Scripts\termlist does not exist"}
读取主机-提示“按Enter键退出”


我知道我想摆脱-unique约束,但为了简单起见,这一点已经存在了,因为我无法显示“webcc”列。我还想知道是否有一种方法可以显示它在两个CSV中发现相等的项目。谢谢你能给我的任何帮助或提示。

通过电子邮件加入表格,对吗

TableA.csv:

mail@mail.net|SomethingAboutSite
表B.csv:

mail@mail.net|Data1|Data2|Data3
代码是这样的

$EmailToSiteAssignment = @{}
Import-CSV -Path 'TableA.csv' -Header @('email','site') | ForEach-Object {$EmailToSiteAssignment[$_.email.Trim().toLower()]=$_.site}

$Result = @();
Import-CSV -Path 'TableB.csv' -Header @('email','data1','data2','data3') | ForEach-Object {$Result += @( $_ | Add-Member -MemberType NoteProperty -Name 'site' -Value $EmailToSiteAssignment[$_.email.Trim().ToLower()] ) }

我想我错过了什么,到底怎么了?正在发生什么以及应该发生什么?有时候,使用示例数据这样做会更好,因此我们不必创建自己的测试环境。因此$termlist将是一个用于所有目的的电子邮件地址列表$WebClist将是一个电子邮件地址的列表,以及它们起源的网站,我已经将多个csv与其中的电子邮件地址合并,并附加了原始csv的名称。我想在我的compare object语句中以某种方式显示原始站点列。这个脚本打印出来后效果很好,我只是想让你能看到我现在在做什么。所以让我看看我是否理解正确。。。对于$termlist上的每个项目,是否希望在$WebClist上找到电子邮件地址为加入字段的匹配项目?然后,对于每个匹配项,将webcc属性附加到$termlist上的关联条目?这是完全正确的。它已经根据电子邮件地址进行了比较,并显示了这些信息。我只想将webcc列附加到显示的电子邮件地址。