txt script how exportar examples powershell export-to-csv

script - powershell export to txt



Exportar-CSV exporta longitud pero no nombre (4)

Tengo este código que estoy ejecutando desde powershell. Cuando lo ejecuto sin export-csv obtengo todos los nombres de las carpetas en la pantalla.

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

Pero si agrego | export-csv c:/test.txt | export-csv c:/test.txt luego veo en el archivo, no en el nombre de la carpeta que esperaba, tal como lo veo en la pantalla.

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


Esto funcionó para mí:

$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


La respuesta anterior funciona, pero ¿qué pasaría si alguien estuviera buscando imprimirla en un archivo CSV?


Esto NO funciona:

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

Porque Export-Csv toma objetos y genera propiedades. Las únicas propiedades para una Cadena [] es Longitud, por lo que el archivo CSV solo contiene Longitudes.

Para arreglar esto necesitamos cambiar la Cadena [] en un Objeto []. La forma más sencilla es con Select-Object .


Ponga cada cadena en la propiedad Name de un nuevo objeto [], como esto:

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

Solo para volver a iterar, Select-Object genera un PSObject personalizado que se puede manipular fácilmente. Esta es una información muy poderosa, úsala sabiamente.


Export-Csv exporta una tabla de propiedades de objetos y sus valores. Ya que su script está produciendo objetos de cadena, y la única propiedad que tienen es la longitud, eso es lo que tiene.

Si solo desea guardar la lista, use Out-File o Set-Content lugar de Export-Csv .


$output |Select-Object * | Export-Csv ''h:/filename.csv'' -NoTypeInformation