【问题标题】:Update missing cell value in csv by using another csv using Power Shell使用 Powershell 使用另一个 csv 更新 csv 中缺失的单元格值
【发布时间】:2015-07-06 14:03:07
【问题描述】:

我想比较两个列名相同的 csv 文件,并且必须用另一个 csv 文件更新空列值。

csv-1:

姓名、电子邮件、电话号码

x,x@y.com,0854

y,Y@x.com,

csv2

姓名、电子邮件、电话号码

x,x@y.com,0854

y,Y@x.com,980

我想比较 2 个 csv 并从 csv 2 更新 csv1 中缺失的列

【问题讨论】:

  • 我尝试了比较对象并做了一些事情,但我得到了错误

标签: powershell powershell-3.0


【解决方案1】:

如果您的电子邮件数据在两个 csv 中是相同的,并且您想更新电话字段,您可以使用这个:

$csv1 = import-csv C:\temp\csv1.csv
$csv2 = import-csv C:\temp\csv2.csv

foreach ($Item in $csv1)
{
$Name = $item.name ## you can add if needed
$Email = $item.email
$phone = $item.phoneno

$csv2item = $csv2 | ? {$_.email -eq $Email}
if ($phone -eq $null -or $phone -eq "")
{$Item.PhoneNo = $csv2item.PhoneNo}
}

$csv1 | Export-Csv "c:\temp\newcsv1.csv"

但如果电子邮件不一样,您可以将此{$_.email -eq $Email} 更改为另一个相同的项目,例如姓名等...

您可以将此作为一种解决方法并根据需要进行更改...

【讨论】:

  • 谢谢,您的脚本正在运行。是否可以更新 csv2 中的缺失字段?
  • 只需将 $csv1 替换为 $csv2 并将 $csv2 替换为 $csv1
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-29
  • 2019-02-25
  • 1970-01-01
  • 2021-02-20
  • 1970-01-01
  • 2015-08-09
  • 1970-01-01
相关资源
最近更新 更多