Exportar datos a CSV en PowerShell

Migel Hewage Nimesha 1 abril 2022
  1. Exportar datos a CSV con el cmdlet de PowerShell Export-CSV
  2. Exportar datos a CSV con el cmdlet de PowerShell ConvertTo-CSV
Exportar datos a CSV en PowerShell

El archivo CSV es solo un archivo de texto delimitado con un formato específico aplicado a su contenido. El formato es muy similar a una estructura de tabla simple, como se muestra en el siguiente ejemplo.

Por ejemplo,

Name, NIC, Phone

John, 394829G,  +671392392

Risabh, 32909340J, +12328833

El CSV es la forma abreviada de Valores separados por comas. Como sugiere el tipo de archivo (CSV), separa los valores de datos mediante comas. Hay diferentes herramientas disponibles para generar archivos CSV con datos.

En este artículo, discutiremos cómo exportar datos a un archivo CSV en PowerShell.

Exportar datos a CSV con el cmdlet de PowerShell Export-CSV

El Export-CSV es uno de los cmdlets de PowerShell que se pueden usar para exportar datos en formato CSV. Este cmdlet es relativamente fácil de usar y también hay algunas propiedades disponibles.

La sintaxis del cmdlet Export-CSV

<data_objects/content> | Export-CSV -Path <path> 
  • <objetos_de_datos/contenido>: los objetos de datos/contenido que se alimentan al cmdlet Export-CSV.
  • Export-CSV: el cmdlet que se encarga de exportar datos en formato CSV.
  • -Path: La ruta donde se guardará el archivo csv.

Ejemplo 01

Usaremos el cmdlet Get-Process para devolver algunos objetos de datos, y esos pueden alimentarse al cmdlet Export-CSV para exportar en formato CSV.

Get-Process

Producción :

Handles	NPM(k)	PM(K)	WS(K)	CPU(s)	Id		SI 		ProcessName
313		14		3712	10756	7.69	39500	0		ApplicationFrameHost
507		30		22864	22836	2.11	18156	2		armsvc

Puede haber varios objetos de proceso devueltos. Podemos usar el operador de tubería (|) para enviar los objetos devueltos al cmdlet Export-CSV. Luego puede verificar el contenido CSV exportado usando el cmdlet Get-Content.

Get-Process | Export-CSV -Path .\ProcessObjects.csv
Get-Content -Path .\ProcessObjects.csv

Producción :

"ProcessName","SI","Handles","VM","WS","PM","NPM", .....
"armsvc","2","511","2203597099008","35364864","21979136","30048", ...
"xyz","0","501","299393939","9982824","0021000","393393", ...

Hay pocas propiedades útiles disponibles para alterar el comportamiento predeterminado del cmdlet Export-CSV.

Ejemplo 02

Get-Process | Export-CSV -Path .\ProcessObjects.csv -Delimiter ';'
Get-Content -Path .\ProcessObjects.csv

Producción :

"ProcessName";"SI";"Handles";"VM";"WS";"PM";"NPM"; .....
"armsvc";"2";"511";"2203597099008";"35364864";"21979136";"30048"; ...

La opción -Delimiter cambia el delimitador del predeterminado , al símbolo especificado.

Exportar datos a CSV con el cmdlet de PowerShell ConvertTo-CSV

El cmdlet ConvertTo-CSV es casi similar al cmdlet Export-CSV mencionado anteriormente. La única diferencia entre los dos es que el cmdlet Export-csv guarda las cadenas CSV en un archivo, pero no es el caso con ConvertTo-CSV. Simplemente devuelve las cadenas de valor separadas por comas.

La sintaxis del cmdlet ConvertTo-CSV

<data_objects/content> | ConvertTo-CSV 
  • <data_objects/content>: los objetos de datos/contenido que se alimentan al cmdlet ConvertTo-CSV.
  • ConvertTo-CSV: El cmdlet que se encarga de devolver cadenas CSV.

Ejemplo

Get-Process | ConvertTo-Csv

Producción :

"ProcessName","SI","Handles","VM","WS","PM","NPM", .....
"armsvc","2","511","2203597099008","35364864","21979136","30048", ...
"xyz","0","501","299393939","9982824","0021000","393393", ...p

Por lo tanto, los cmdlets Export-CSV y ConvertTo-CSV son herramientas útiles para generar datos con formato CSV usando PowerShell.

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.

Artículo relacionado - PowerShell CSV