Compartir a través de


ConvertTo-Csv

Convierte los objetos en una serie de cadenas de valores separados por comas (CSV).

Syntax

ConvertTo-Csv
              [-InputObject] <psobject>
              [[-Delimiter] <char>]
              [-NoTypeInformation]
              [<CommonParameters>]
ConvertTo-Csv
              [-InputObject] <psobject>
              [-UseCulture]
              [-NoTypeInformation]
              [<CommonParameters>]

Description

El ConvertTo-CSV cmdlet devuelve una serie de cadenas de valores separados por comas (CSV) que representan los objetos que envía. A continuación, puede usar el ConvertFrom-Csv cmdlet para volver a crear objetos a partir de las cadenas CSV. Los objetos convertidos desde CSV son valores de cadena de los objetos originales que contienen valores de propiedad y ningún método.

Puede usar el Export-Csv cmdlet para convertir objetos en cadenas CSV. Export-CSV es similar a ConvertTo-CSV, salvo que guarda las cadenas CSV en un archivo.

El ConvertTo-CSV cmdlet tiene parámetros para especificar un delimitador distinto de una coma o usar la referencia cultural actual como delimitador.

Ejemplos

Ejemplo 1: Convertir un objeto en CSV

En este ejemplo se convierte un objeto Process en una cadena CSV.

Get-Process -Name 'PowerShell' | ConvertTo-Csv -NoTypeInformation

"Name","SI","Handles","VM","WS","PM","NPM","Path","Company","CPU","FileVersion", ...
"powershell","11","691","2204036739072","175943680","132665344","33312", ...

El Get-Process cmdlet obtiene el objeto Process y usa el parámetro Name para especificar el proceso de PowerShell. El objeto de proceso se envía a la canalización al ConvertTo-CSV cmdlet . El ConvertTo-CSV cmdlet convierte el objeto en cadenas CSV. El parámetro NoTypeInformation quita el encabezado de información #TYPE de la salida CSV.

Ejemplo 2: Convertir un objeto DateTime en CSV

En este ejemplo se convierte un objeto DateTime en una cadena CSV.

$Date = Get-Date
ConvertTo-Csv -InputObject $Date -Delimiter ';' -NoTypeInformation

"DisplayHint";"DateTime";"Date";"Day";"DayOfWeek";"DayOfYear";"Hour";"Kind";"Millisecond";"Minute";"Month";"Second";"Ticks";"TimeOfDay";"Year"
"DateTime";"Friday, January 4, 2019 14:40:51";"1/4/2019 00:00:00";"4";"Friday";"4";"14";"Local";"711";"40";"1";"51";"636822096517114991";"14:40:51.7114991";"2019"

El Get-Date cmdlet obtiene el objeto DateTime y lo guarda en la $Date variable . El ConvertTo-Csv cmdlet convierte el objeto DateTime en cadenas. El parámetro InputObject usa el objeto DateTime almacenado en la $Date variable . El parámetro Delimiter especifica un punto y coma para separar los valores de cadena. El parámetro NoTypeInformation quita el encabezado de información #TYPE de la salida CSV.

Ejemplo 3: Conversión del registro de eventos de PowerShell en CSV

En este ejemplo se convierte el registro de eventos de Windows para PowerShell en una serie de cadenas CSV.

(Get-Culture).TextInfo.ListSeparator
Get-WinEvent -LogName 'Windows PowerShell' | ConvertTo-Csv -UseCulture -NoTypeInformation

,
"Message","Id","Version","Qualifiers","Level","Task","Opcode","Keywords","RecordId", ...
"Error Message = System error","403",,"0","4","4",,"36028797018963968","46891","PowerShell", ...

El Get-Culture cmdlet usa las propiedades anidadas TextInfo y ListSeparator y muestra el separador de lista predeterminado de la referencia cultural actual. El Get-WinEvent cmdlet obtiene los objetos de registro de eventos y usa el parámetro LogName para especificar el nombre del archivo de registro. Los objetos de registro de eventos se envían a la canalización al ConvertTo-Csv cmdlet . El ConvertTo-Csv cmdlet convierte los objetos de registro de eventos en una serie de cadenas CSV. El parámetro UseCulture usa el separador de lista predeterminado de la referencia cultural actual como delimitador. El parámetro NoTypeInformation quita el encabezado de información #TYPE de la salida CSV.

Parámetros

-Delimiter

Especifica el delimitador para separar los valores de propiedad en cadenas CSV. El valor predeterminado es una coma (,). Escriba un carácter, como dos puntos (:). Para especificar un punto y coma (;) lo incluye entre comillas simples.

Type:Char
Position:1
Default value:comma (,)
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Especifica los objetos que se convierten en cadenas CSV. Especifique una variable que contenga los objetos, o escriba un comando o una expresión que obtenga los objetos. También puede canalizar objetos a ConvertTo-CSV.

Type:PSObject
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-NoTypeInformation

Quita el encabezado de información #TYPE de la salida. Este parámetro se convirtió en el valor predeterminado en PowerShell 6.0 y se incluye para la compatibilidad con versiones anteriores.

Type:SwitchParameter
Aliases:NTI
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UseCulture

Usa el separador de lista para la referencia cultural actual como delimitador de elementos. Para buscar el separador de lista de una referencia cultural, use el siguiente comando: (Get-Culture).TextInfo.ListSeparator.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Entradas

PSObject

Puede canalizar cualquier objeto que tenga un adaptador del Sistema de tipos extendidos (ETS) a ConvertTo-CSV.

Salidas

String

Los resultados en formato CSV se devuelven en forma de colección de cadenas.

Notas

En el formato CSV, cada objeto se representa mediante una lista separada por comas de su valor de propiedad. Los valores de propiedad se convierten en cadenas mediante el método ToString() del objeto. Las cadenas se representan mediante el nombre del valor de propiedad. ConvertTo-CSV no exporta los métodos del objeto.

Las cadenas CSV se generan de la siguiente manera:

  • De forma predeterminada, la primera cadena contiene el encabezado de información #TYPE seguido del nombre completo del tipo de objeto. Por ejemplo, #TYPE System.Diagnostics.Process.
  • Si noTypeInformation se usa la primera cadena incluye los encabezados de columna. Los encabezados contienen los nombres de propiedad del primer objeto como una lista separada por comas.
  • Las cadenas restantes contienen listas separadas por comas de los valores de propiedad de cada objeto.

Al enviar varios objetos a ConvertTo-CSV, ConvertTo-CSV ordena las cadenas en función de las propiedades del primer objeto que envíe. Si los objetos restantes no tienen una de las propiedades especificadas, el valor de propiedad de ese objeto es Null, como se representa mediante dos comas consecutivas. Si los objetos restantes tienen propiedades adicionales, se omiten los valores de dichas propiedades.