2016-08-04 54 views
0

我是PowerShell的新手。我有兩個不同的CSV文件,我正在使用每個文件中的主鍵字段將它們合併爲一個。 一個例子是:使用PowerShell將來自兩個不同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'分離。你不能把它改成逗號嗎? –

回答

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 
相關問題