Export-Csv
mong đợi đầu vào là các đối tượng. Đầu vào chuỗi được coi là các đối tượng chuỗi, chỉ có một thuộc tính (Length
), vì vậy chỉ thuộc tính này được xuất. Nếu đầu vào của bạn là một mảng chuỗi, bạn cần biến nó thành một đối tượng, ví dụ:như thế này:
$array = "foo", "bar", "baz"
New-Object -Type PSCustomObject -Property @{
"a" = $array[0]
"b" = $array[1]
"c" = $array[2]
} | Export-Csv output.csv -NoTypeInformation
Ở trên sẽ tạo một tệp output.csv
với nội dung sau:
"c","a","b"
"baz","foo","bar"
Tên thuộc tính (a
, b
, c
) trở thành tiêu đề CSV, các giá trị thuộc tính (foo
, bar
, baz
) trở thành các giá trị CSV.
Nếu truy vấn SQL của bạn tạo ra một danh sách các mảng, có thể bạn sẽ phải làm như sau:
Invoke-Sqlcmd ... | % {
New-Object -Type PSCustomObject -Property @{
"col1" = $_[0]
"col2" = $_[1]
"col3" = $_[2]
}
} | Export-Csv output.csv -NoTypeInformation
Tuy nhiên, tôi không có máy chủ SQL trong tay, vì vậy hãy mang theo chút muối.