Я пытаюсь создать сценарий PowerShell, который транспонирует файл CSV из столбца в строки.
Я нашел примеры противоположного (преобразование CSV на основе строки в столбец), но ничего не нашел в столбце длястрок.Моя проблема в том, что я не знаю точно, сколько колонок у меня будет.Я попытался адаптировать строку к столбцу, чтобы столбец превратился в строку, но безуспешно.
$a = Import-Csv "input.csv"
$a | FT -AutoSize
$b = @()
foreach ($Property in $a.Property | Select -Unique) {
$Props = [ordered]@{ Property = $Property }
foreach ($Server in $a.Server | Select -Unique){
$Value = ($a.where({ $_.Server -eq $Server -and
$_.Property -eq $Property })).Value
$Props += @{ $Server = $Value }
}
$b += New-Object -TypeName PSObject -Property $Props
}
$b | FT -AutoSize
$b | Out-GridView
$b | Export-Csv "output.csv" -NoTypeInformation
Например, мой CSV может выглядеть так:
"ID","DATA1"
"12345","11111"
"54321","11111"
"23456","44444"
или около того (количество столбцов может отличаться):
"ID","DATA1","DATA2","DATA3"
"12345","11111","22222","33333"
"54321","11111",,
"23456","44444","55555",
и я хотел бы, чтобы скрипт преобразовал его следующим образом:
"ID","DATA"
"12345","11111"
"12345","22222"
"12345","33333"
"54321","11111"
"23456","44444"
"23456","55555"