ConvertTo-Csv
Convierte los objetos en una serie de cadenas de valores separados por comas (CSV).
Sintaxis
Delimiter (valor predeterminado)
ConvertTo-Csv
[-InputObject] <psobject>
[[-Delimiter] <char>]
[-NoTypeInformation]
[<CommonParameters>]
UseCulture
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 cmdlet ConvertFrom-Csv para volver a crear objetos 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 cmdlet Export-Csv para convertir objetos en cadenas CSV.
Export-CSV es similar a ConvertTo-CSV, salvo que guarda las cadenas CSV en un archivo.
El cmdlet ConvertTo-CSV 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 cmdlet Get-Process obtiene el objeto process de y usa el parámetro name de para especificar el proceso de PowerShell. El objeto de proceso se envía a la canalización al cmdlet ConvertTo-CSV. El cmdlet ConvertTo-CSV 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 cmdlet Get-Date obtiene el objeto DateTime y lo guarda en la variable $Date. El cmdlet ConvertTo-Csv convierte el objeto DateTime en cadenas. El parámetro InputObject usa el objeto DateTime almacenado en la variable $Date. El parámetro de delimitador de 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 cmdlet Get-Culture usa las propiedades anidadas TextInfo y listSeparator y muestra el separador de lista predeterminado de la referencia cultural actual. El cmdlet Get-WinEvent 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 cmdlet ConvertTo-Csv. El cmdlet ConvertTo-Csv 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 un signo de dos puntos (:). Para especificar un punto y coma (;) lo incluye entre comillas simples.
Propiedades de parámetro
| Tipo: | Char |
| Valor predeterminado: | comma (,) |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
Delimiter
| Posición: | 1 |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-InputObject
Especifica los objetos que se convierten en cadenas CSV. Escriba una variable que contenga los objetos o escriba un comando o expresión que obtenga los objetos. También puede redirigir objetos a ConvertTo-CSV.
Propiedades de parámetro
| Tipo: | PSObject |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | 0 |
| Obligatorio: | True |
| Valor de la canalización: | True |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | 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.
Propiedades de parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | NTI |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-UseCulture
Utiliza el separador de lista de la referencia cultural actual como delimitador de los elementos. Para buscar el separador de lista de una cultura, use el siguiente comando: (Get-Culture).TextInfo.ListSeparator.
Propiedades de parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
UseCulture
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
CommonParameters
Este cmdlet admite los parámetros comunes: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction y -WarningVariable. Para obtener más información, vea about_CommonParameters.
Entradas
PSObject
Puede canalizar cualquier objeto que tenga un adaptador de sistema de tipo extendido (ETS) a ConvertTo-CSV.
Salidas
String
La salida CSV se devuelve como una colección de cadenas.
Notas
En 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 esos valores de propiedad.