2014-07-24 4 views
0

나는 UserID, 이름, 이메일을 사용하여 csv 파일을 생성하는 하루에 한 번 실행되는 powershell 스크립트를 가지고 있습니다. 의이 내 CSV 제인 스미스에 대한 메일을 변경할 오늘 아침 누군가 렸기 때문에, 다른 모양 어제하나의 열을 사용하여 두 개의 csv를 비교하십시오.

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

오늘부터 포함 된 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

"-delimiter ',' '를 매개 변수로 지정할 수있는 스크립트에서 Get-Content 대신 Import-Csv를 사용해야합니다.

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