Export-Csv
očekává, že vstupem budou objekty. Vstup řetězce je považován za objekty řetězce, které mají pouze jednu vlastnost (Length
), takže se exportuje pouze tato vlastnost. Pokud je vaším vstupem pole řetězců, musíte z něj udělat objekt, např. takhle:
$array = "foo", "bar", "baz"
New-Object -Type PSCustomObject -Property @{
"a" = $array[0]
"b" = $array[1]
"c" = $array[2]
} | Export-Csv output.csv -NoTypeInformation
Výše uvedené by vytvořilo soubor output.csv
s následujícím obsahem:
"c","a","b"
"baz","foo","bar"
Názvy vlastností (a
, b
, c
) se stanou hlavičkami CSV, hodnotami vlastností (foo
, bar
, baz
) se stanou hodnotami CSV.
Pokud váš dotaz SQL generuje seznam polí, budete pravděpodobně muset udělat něco takového:
Invoke-Sqlcmd ... | % {
New-Object -Type PSCustomObject -Property @{
"col1" = $_[0]
"col2" = $_[1]
"col3" = $_[2]
}
} | Export-Csv output.csv -NoTypeInformation
Nemám však po ruce SQL server, takže to berte s rezervou.