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