1

我是 powershell 的新手,我在创建用于比较两个 csv 文件的脚本时遇到了一些难题。第一个 csv 中只有一个名为“数据库名称”的列。第二个 csv 有很多列,我只关心其中两个“数据库名称”和“主机名”。现在脚本只比较“数据库名称”列,效果很好!!并导出到 Differences.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

请协助

4

1 回答 1

3

如果您添加-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
于 2013-09-27T05:11:48.183 回答