2013-10-18 8 views
13

मेरे पास यह कोड है कि मैं पावरहेल से चल रहा हूं। जब मैं इसे निर्यात-सीएसवी के बिना चलाता हूं तो मुझे स्क्रीन पर सभी फ़ोल्डर नाम मिलते हैं।निर्यात-सीएसवी निर्यात की लंबाई लेकिन नाम नहीं

dir | select -expand fullname | % { ($_ -split '\')[7] 

लेकिन अगर मैं | export-csv c:\test.txt जोड़ने तो मैं फ़ाइल में निम्न को देखने के फोल्डर का नाम मैं उम्मीद की तरह मैं स्क्रीन पर यह दिखाई नहीं देता।

#TYPE System.String 
"Length" 
"13" 
"18" 
"20" 
"22" 
"29" 
"21" 
"24" 
"11" 
"17" 
"20" 
"20" 

उत्तर

16

Export-Csv ऑब्जेक्ट गुणों और उनके मूल्यों की एक तालिका निर्यात करता है। चूंकि आपकी स्क्रिप्ट स्ट्रिंग ऑब्जेक्ट्स का उत्पादन कर रही है, और उनके पास केवल एक ही संपत्ति है, जो आपको मिलती है।

यदि आप सूची को सहेजना चाहते हैं, तो के बजाय Out-File या Set-Content का उपयोग करें।

+0

बाहर फ़ाइल आकर्षण की तरह काम किया। जल्दी जवाब देने का शुक्रिया। –

+0

मैंने भी जोड़ा आउट-फाइल "सी: \ टेस्ट.XT" - ऐपेंड करें। धन्यवाद –

9

पिछला उत्तर काम करता है, लेकिन क्या होगा यदि कोई इसे CSV फ़ाइल में आउटपुट करने के लिए देख रहा था।


यह करता नहीं काम:

$str_list = @('Mark','Henry','John') 
$str_list | Export-Csv .\ExportStrList.csv -NoType 

Export-Csv वस्तुओं लेता है और गुण आउटपुट क्योंकि। स्ट्रिंग [] के लिए एकमात्र गुण लंबाई है, इसलिए सीएसवी फ़ाइल में केवल लंबाई होती है।

इसे ठीक करने के लिए हमें स्ट्रिंग [] को ऑब्जेक्ट में बदलना होगा []। सबसे आसान तरीका Select-Object के साथ है।


एक नई वस्तु [], इस तरह का नाम संपत्ति में प्रत्येक स्ट्रिंग रखो:

$str_list = @('Mark','Henry','John') 
$obj_list = $str_list | Select-Object @{Name='Name';Expression={$_}} 
$obj_list | Export-Csv .\ExportStrList.csv -NoType 

बस फिर से पुनरावृति करने के लिए, Select-Object है कि आसानी से हेरफेर किया जा सकता एक कस्टम PSObject आउटपुट। यह बहुत शक्तिशाली जानकारी है, इसे बुद्धिमानी से उपयोग करें।

+0

यह लाइन मेरे लिए सबसे उपयोगी थी - $ obj_list = $ str_list | चयन-ऑब्जेक्ट @ {नाम = 'नाम'; अभिव्यक्ति = {$ _}}। – HiTech

5

यह मेरे लिए काम किया:

$data = @() 
$row = New-Object PSObject 
$row | Add-Member -MemberType NoteProperty -Name "name1" -Value "Test" 
$row | Add-Member -MemberType NoteProperty -Name "name2" -Value 2 
$data += $row 

$data | Export-Csv "Text.csv" -NoTypeInformation 
-1
$output |Select-Object * | Export-Csv 'h:\filename.csv' -NoTypeInformation 
+0

आपको यह बताने की आवश्यकता हो सकती है कि यह कोड स्निपेट समस्या को कैसे हल करेगा .. –

संबंधित मुद्दे