2016-08-04 30 views
0

私はpowershellの初心者です。私は2つの異なるCSVファイルを持っています。私はそれぞれのファイルからプライマリキーフィールドを使って1つにまとめてマージしようとしています。 例は次のようになりますPowerShellを使用して、2つの異なるCSVファイルの情報を新しいファイルにマージする

CSV 1:

ID - TB - Number 
01:01 - SB - 24 
12:04 - DV - 63 

CSV 2:

ID - UR1 - UR2 
01:01 - soft - install soft 
12:04 - soft - uninstall soft 

所望の出力

ID - TB - Number - UR1 - UR2 
01:01 - SB - 24 - soft - install soft 
12:04 - DV - 63 - soft - uninstall soft 
+0

これが有効なCSV形式ではありませんそれを行うことができ、自分の価値観が 'スペースspace'で区切られて、醜いFIXE(最初の2行を)やりました。カンマに変えることはできませんか? –

答えて

0

実際にCSVには、適切にフォーマットされていないが、その後あなたに怒鳴る

$csv1 = (gc C:\tmp\csv1.ps1 -raw) -replace ' - ',',' | ConvertFrom-Csv 
$csv2 = (gc C:\tmp\csv2.ps1 -raw) -replace ' - ',',' | ConvertFrom-Csv 

$columns1 = ($csv1 | Get-Member -MemberType NoteProperty).Name 

$csv1 | % { 
    $row1 = $_ 
    $row2 = $csv2 | ? {$_.ID -eq $row1.ID} 
    $row2 | Get-Member -MemberType NoteProperty | % { 
     if($_.Name -notin $columns1) { 
      $row1 | Add-Member $_.Name $row2.$($_.Name) 
     } 
    }  
} 

$csv1 
関連する問題