2014-07-24 111 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 '=>' }