2016-04-12 70 views
0

我想將兩個CSV合併在一起。其中一個CSV包含我想添加到另一列的列,但是當導出csv時,添加的列爲空白。合併兩個CSV - 將CSV添加爲另一列

$ csv1

VLAN 
1 
2 
3 

$ CSV2

Host 
NETMAN 
ADMIN 
CLIENT 

我得到

VLAN, Host 
1, 
2, 
3, 

所需的輸出是

VLAN, Host 
1,NETMAN 
2,ADMIN 
3,CLIENT 

我試圖

$csv1 = Import-Csv -Path ".\VLAN.csv" 
$csv2 = Import-Csv -Path ".\Hostname.csv" 

$csv1 | % {$i=0} { $csv1[$i] | Add-Member -NotePropertyName Hostname -NotePropertyValue $csv2[$i++].Hostname;} 

$csv1 | Export-Csv combined.csv -NoType 

回答

2

在這裏你去:

$csv1 = Import-Csv -Path ".\VLAN.csv" 
$csv2 = Import-Csv -Path ".\Hostname.csv" 

$arr = @() 
#If($csv1.count -eq $csv2.count){ 
    for($i=0; $i -lt $csv1.Count; $i++){ 
     $temp = New-Object psobject 
     $temp | Add-Member -MemberType NoteProperty -Name VLAN -Value $csv1[$i].Vlan 
     $temp | Add-Member -MemberType NoteProperty -Name HOST -Value $csv2[$i].Host 
     $arr+=$temp 
    } 
#} 

$arr | Export-Csv combined.csv -NoTypeInformation 
+0

我仍然走出空白......我不知道爲什麼...我認爲這可能是主機文件,使我重新它。 – ShanayL

+0

@ slong16是整個文件空白還是隻有一列?如果你輸出$ arr它顯示了什麼? – Paul

+1

OMG我覺得很愚蠢,我的原始代碼工作。這整個時間我都在'主機名'中排除's'了......一旦我把它放在它上面,你的代碼就可以工作了。我沒有注意。我原來的csv有標題主機名。我一直工作了大約45分鐘。 – ShanayL