我是PowerShell的新手,我在创建一个比较两个csv文件的脚本时遇到了一些困难。第一个csv中只有一个名为“Database Name”的列。 secound csv有很多列,我只关心其中的两个“Database Name”和“Host Name”。现在,脚本仅比较“数据库名称”列,该列非常有效!并导出到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
请协助
答案 0 :(得分: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