2013-09-26 97 views
0

我是新來的powershell和我有一個與我創建比較兩個CSV文件的腳本有點困惑。第一個csv只有一列名爲「數據庫名稱」的列。 secound csv有很多列,我只關心其中的兩個「數據庫名稱」和「主機名稱」。現在,腳本僅比較「極好的數據庫名稱」列!並導出到Differences.csv。但是,我還希望在差異文件中查看每個「數據庫名稱」的相應「主機名」列。使用比較對象比較Powershell中的csv文件

$northdb = Import-Csv -Path ".\northdb.csv" -Header "Database Name" | Sort-object Property "Database Name" -Unique 

$sdb = Import-Csv ".\Current\SQLDatabaseInventory.csv" -Header "hostname",h2,h3,h4,h5,"Database Name" |Sort-Object -Property "Database Name" -Unique 

Compare-Object $northdb $sdb -Property "Database Name" | Where-Object{$_.SideIndicator -eq '=>'} | 
Select-Object "Database Name" | export-csv .\Difference.csv -NoTypeInfo 

請協助

+0

你能分享這兩個文件的一些示例數據嗎? – ravikanth

回答

2

如果添加-PassThru到您的比較對象,你會收到所有的對象屬性

Compare-Object $northdb $sdb -Property "Database Name" -PassThru 

那你也可以導出主機名:

Compare-Object $northdb $sdb -Property "Database Name" -PassThru | Where-Object{$_.SideIndicator -eq '=>'} | Select-Object "Database Name", "hostname" | export-csv .\Difference.csv -NoTypeInfo 
+0

非常感謝你!這正是我想要的。 – user2821260