Export-CSV esporta la lunghezza ma non il nome

Ho questo codice che sto correndo da PowerShell. Quando lo eseguo senza export-csv ottengo tutti i nomi delle cartelle sullo schermo.

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

Ma se aggiungo | export-csv c:\test.txt | export-csv c:\test.txt poi vedo nel file non il nome della cartella che mi aspettavo proprio come lo vedo sullo schermo.

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

Export-Csv esporta una tabella di proprietà dell’object e i relativi valori. Dal momento che lo script sta producendo oggetti stringa, e l’unica proprietà che hanno è la lunghezza, questo è ciò che hai ottenuto.

Se vuoi solo salvare la lista, usa Out-File o Set-Content invece di Export-Csv .

La risposta precedente funziona, ma cosa succede se qualcuno stava cercando di inviarlo in un file CSV.

Questo NON funziona:

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

Poiché Export-Csv acquisisce oggetti e genera proprietà. Le sole proprietà per una stringa [] sono Lunghezza, quindi il file CSV contiene solo lunghezze.

Per risolvere questo problema, è necessario modificare String [] in un object []. Il modo più semplice è con Select-Object .

Metti ogni stringa nella proprietà Name di un nuovo object [], in questo modo:

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

Solo per ripetere l’azione, Select-Object emette un Select-Object PSO personalizzato che può essere facilmente manipolato. Questa è un’informazione molto potente, usala saggiamente.

Questo ha funzionato per me:

 $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 
 $output |Select-Object * | Export-Csv 'h:\filename.csv' -NoTypeInformation