将列从多个csv导入到新的csv powershell

时间:2019-03-17 00:26:48

标签: powershell csv export-to-csv

嗨,我是新手,在Powershell上确实很挣扎。

我有5个csv文件,所有文件都有1列。我想从每个csv文件中提取该列并将其放入新的csv文件中,并从5个csv文件中提取每个列作为新csv中的单独列

要成为这个

temp1 | temp2 | temp3 | temp4 | temp5|

有人可以帮我吗

1 个答案:

答案 0 :(得分:0)

这应该有效。它是逗号分隔的数据。我无法确定您是否要根据自己的问题用竖线分隔,还是出于演示目的。我也无法确定临时命名法是您想要的列的新值,还是已经是每个文件中每个列的名称。假设您的数据中没有逗号。

$CSV1 = Get-Content csv1.csv
$CSV2 = Get-Content csv2.csv
$CSV3 = Get-Content csv3.csv
$CSV4 = Get-Content csv4.csv
$CSV5 = Get-Content csv5.csv
$MostRows = ($CSV1.count,$CSV2.count,$CSV3.count,$CSV4.count,$CSV5.count | Sort-Object -Descending)[0]

$Output = For ($i = 0; $i -lt $MostRows; $i++) {
    $CSV1[$i],$CSV2[$i],$CSV3[$i],$CSV4[$i],$CSV5[$i] -Join ","
}

$Output | Set-Content NewCSV.csv

这里是使用对象并保护数据中逗号的替代方法。这将使用您的临时术语作为列名。可以通过更新哈希表中的名称将其手动调整为所需的任何内容。

$CSV1 = Get-Content csv1.csv
$CSV2 = Get-Content csv2.csv
$CSV3 = Get-Content csv3.csv
$CSV4 = Get-Content csv4.csv
$CSV5 = Get-Content csv5.csv
$MostRows = ($CSV1.count,$CSV2.count,$CSV3.count,$CSV4.count,$CSV5.count | Sort-Object -Descending)[0]

$Output = For ($i = 0; $i -lt $MostRows; $i++) {
    [pscustomobject][ordered]@{"temp1"=$CSV1[$i];"temp2"=$CSV2[$i];"temp3"=$CSV3[$i];"temp4"=$CSV4[$i];"temp5"=$CSV5[$i]}
}

$Output | Export-CSV NewCSV.csv -notypeinformation