2014-07-24 141 views
0

我有一个每天运行一次的PowerShell脚本,该脚本用UserID,名称,电子邮件生成一个csv文件。让我们说,这是从昨天今天使用一列比较两个csv

ID, name, email 
---- ---- ---- 
001, John Doe, [email protected] 
002, Jane Smith, [email protected] 
003, Greg Best, [email protected] 

我的CSV看起来不一样,becouse今天早上有人更改邮件珍妮·史密斯一个csv,所以今天的CSV看起来像这样

ID, name, email 
---- ---- ---- 
001, John Doe, [email protected] 
002, Jane Smith, [email protected] 
003, Greg Best, [email protected] 

我想为了借助PS这样的差异,我的意思是我想比较只有一列(电子邮件),并获得输出,CSV

ID, name, email 
---- ---- ---- 
002, Jane Smith, [email protected] 

现在我已经创造了这样的脚本:

$old = Get-Content ".\yesterday.csv" 
$new = Get-Content ".\today.csv" 
Compare-Object $old $new -property email -passThru | Where-Object { $_.SideIndicator -eq '=>' } 

但它没有为我工作。我认为主要问题是csv中的标题。我尝试了很多东西,但是我输了。你能不能给我一些提示如何解决这个问题?

回答

0

您应该在脚本中使用Import-Csv而不是Get-Content,可能需要指定“-delimiter','”作为参数。

$old = Import-Csv ".\yesterday.csv" -delimiter ',' 
$new = Import-Csv ".\today.csv" -delimiter ',' 
Compare-Object $old $new -property email -passThru | Where-Object { $_.SideIndicator -eq '=>' }