Export-Csv
очаква входът да бъде обекти. Въвеждането на низове се счита за низови обекти, които имат само едно свойство (Length
), така че само това свойство се експортира. Ако вашият вход е масив от низове, трябва да го превърнете в обект, напр. като това:
$array = "foo", "bar", "baz"
New-Object -Type PSCustomObject -Property @{
"a" = $array[0]
"b" = $array[1]
"c" = $array[2]
} | Export-Csv output.csv -NoTypeInformation
Горното ще създаде файл output.csv
със следното съдържание:
"c","a","b"
"baz","foo","bar"
Имената на свойствата (a
, b
, c
) се превръщат в CSV заглавките, стойностите на свойствата (foo
, bar
, baz
) стават CSV стойности.
Ако вашата SQL заявка генерира списък с масиви, вероятно ще трябва да направите нещо подобно:
Invoke-Sqlcmd ... | % {
New-Object -Type PSCustomObject -Property @{
"col1" = $_[0]
"col2" = $_[1]
"col3" = $_[2]
}
} | Export-Csv output.csv -NoTypeInformation
Все пак нямам под ръка SQL сървър, така че приемайте със зърно сол.