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
Puede canalizar cualquier objeto que tenga un adaptador del Sistema de tipos extendidos (ETS) a ConvertTo-CSV
.
Salidas
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.