Это должно работать.Это данные через запятую.Я не мог сказать, хотите ли вы разделить трубу на основе вашего вопроса или это было для демонстрационных целей.Я также не мог сказать, была ли временная номенклатура новым значением столбцов, которые вы хотели, или это было уже имя каждого столбца в каждом файле.Предполагается, что в ваших данных нет запятых.
$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