Export-Csv
förväntar sig att ingången är objekt. Stränginmatning betraktas som strängobjekt, som bara har en egenskap (Length
), så endast den här egenskapen exporteras. Om din inmatning är en rad strängar måste du göra den till ett objekt, t.ex. så här:
$array = "foo", "bar", "baz"
New-Object -Type PSCustomObject -Property @{
"a" = $array[0]
"b" = $array[1]
"c" = $array[2]
} | Export-Csv output.csv -NoTypeInformation
Ovanstående skulle skapa filen output.csv
med följande innehåll:
"c","a","b"
"baz","foo","bar"
Egenskapens namn (a
, b
, c
) blir CSV-huvudena, egenskapsvärdena (foo
, bar
, baz
) blir CSV-värdena.
Om din SQL-fråga genererar en lista med arrayer måste du förmodligen göra något så här:
Invoke-Sqlcmd ... | % {
New-Object -Type PSCustomObject -Property @{
"col1" = $_[0]
"col2" = $_[1]
"col3" = $_[2]
}
} | Export-Csv output.csv -NoTypeInformation
Jag har dock ingen SQL-server till hands, så ta med en nypa salt.