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 ) सीएसवी हेडर बन जाते हैं, संपत्ति मान (foo , bar , baz ) CSV मान बन जाते हैं।
यदि आपकी SQL क्वेरी सरणियों की सूची तैयार करती है, तो आपको शायद कुछ ऐसा करना होगा:
Invoke-Sqlcmd ... | % {
New-Object -Type PSCustomObject -Property @{
"col1" = $_[0]
"col2" = $_[1]
"col3" = $_[2]
}
} | Export-Csv output.csv -NoTypeInformation
हालाँकि, मेरे पास SQL सर्वर नहीं है, इसलिए नमक का एक दाना लें।