Compartir a través de


ConvertFrom-Csv

Convierte las propiedades de objeto con el formato de valores separados por comas (CSV) en versiones CSV de los objetos originales.

Syntax

ConvertFrom-Csv
                [-InputObject] <psobject[]>
                [[-Delimiter] <char>]
                [-Header <string[]>]
                [<CommonParameters>]
ConvertFrom-Csv
                [-InputObject] <psobject[]>
                -UseCulture
                [-Header <string[]>]
                [<CommonParameters>]

Description

El ConvertFrom-Csv cmdlet crea objetos a partir de cadenas de longitud variable CSV generadas por el ConvertTo-Csv cmdlet.

Puede usar los parámetros de este cmdlet para especificar la fila de encabezado de columna, que determina los nombres de propiedad de los objetos resultantes, para especificar el delimitador de elementos o para dirigir a este cmdlet para usar el separador de lista para la referencia cultural actual como delimitador.

Los objetos que ConvertFrom-Csv crea son versiones CSV de los objetos originales. Los valores de propiedad de los objetos CSV son versiones de cadena de los valores de propiedad de los objetos originales. Las versiones CSV de los objetos no tienen ningún método.

También puede usar los Export-Csv cmdlets y Import-Csv para convertir objetos en cadenas CSV en un archivo (y atrás). Estos cmdlets son los mismos que los ConvertTo-Csv cmdlets y ConvertFrom-Csv , salvo que guardan las cadenas CSV en un archivo.

Ejemplos

Ejemplo 1: Conversión de procesos en el equipo local al formato CSV

En este ejemplo se muestra cómo convertir los procesos en el equipo local en formato CSV y, a continuación, restaurarlos en un formulario de objeto.

$P = Get-Process | ConvertTo-Csv
$P | ConvertFrom-Csv

El Get-Process cmdlet envía los procesos de la canalización a ConvertTo-Csv. El ConvertTo-Csv cmdlet convierte los objetos de proceso en una serie de cadenas CSV. El ConvertFrom-Csv cmdlet convierte las cadenas CSV en versiones CSV de los objetos de proceso originales. Las cadenas CSV se guardan en la $P variable .

Ejemplo 2: Convertir un objeto de datos en formato CSV y, a continuación, en formato de objeto CSV

En este ejemplo se muestra cómo convertir un objeto de datos al formato CSV y, a continuación, al formato de objeto CSV.

$Date = Get-Date | ConvertTo-Csv -Delimiter ';'
ConvertFrom-Csv -InputObject $Date -Delimiter ';'

El primer comando usa Get-Date para enviar la fecha y hora actuales de la canalización a ConvertTo-Csv. El ConvertTo-Csv cmdlet convierte el objeto date en una serie de cadenas CSV. El parámetro Delimiter se usa para especificar un delimitador de punto y coma. Las cadenas se guardan en la $Date variable .

Ejemplo 3: Usar el parámetro de encabezado para cambiar los nombres de las propiedades

En este ejemplo se muestra cómo usar el parámetro Header de ConvertFrom-Csv para cambiar los nombres de las propiedades en el objeto importado resultante.

$J = Start-Job -ScriptBlock { Get-Process } | ConvertTo-Csv  -NoTypeInformation
$Header = 'State', 'MoreData', 'StatusMessage', 'Location', 'Command', 'StateInfo', 'Finished', 'InstanceId', 'Id', 'Name', 'ChildJobs', 'BeginTime', 'EndTime', 'JobType', 'Output', 'Error', 'Progress', 'Verbose', 'Debug', 'Warning', 'Information'
# Delete the default header from $J
$J = $J[1..($J.count - 1)]
$J | ConvertFrom-Csv -Header $Header

State         : Running
MoreData      : True
StatusMessage :
Location      : localhost
Command       : Get-Process
StateInfo     : Running
Finished      : System.Threading.ManualResetEvent
InstanceId    : a259eb63-6824-4b97-a033-305108ae1c2e
Id            : 1
Name          : Job1
ChildJobs     : System.Collections.Generic.List`1[System.Management.Automation.Job]
BeginTime     : 12/20/2018 18:59:57
EndTime       :
JobType       : BackgroundJob
Output        : System.Management.Automation.PSDataCollection`1[System.Management.Automation.PSObject]
Error         : System.Management.Automation.PSDataCollection`1[System.Management.Automation.ErrorRecord]
Progress      : System.Management.Automation.PSDataCollection`1[System.Management.Automation.ProgressRecord]
Verbose       : System.Management.Automation.PSDataCollection`1[System.Management.Automation.VerboseRecord]
Debug         : System.Management.Automation.PSDataCollection`1[System.Management.Automation.DebugRecord]
Warning       : System.Management.Automation.PSDataCollection`1[System.Management.Automation.WarningRecord]
Information   : System.Management.Automation.PSDataCollection`1[System.Management.Automation.InformationRecord]

El Start-Job cmdlet inicia un trabajo en segundo plano que ejecuta Get-Process. Un objeto de trabajo se envía a la canalización ConvertTo-Csv y se convierte en una cadena CSV. El parámetro NoTypeInformation quita el encabezado de información de tipo de la salida CSV y es opcional en PowerShell Core. La $Header variable contiene un encabezado personalizado que reemplaza los siguientes valores predeterminados: HasMoreData, JobStateInfo, PSBeginTime, PSEndTime y PSJobTypeName. La $J variable contiene la cadena CSV y se usa para quitar el encabezado predeterminado. El ConvertFrom-Csv cmdlet convierte la cadena CSV en un PSCustomObject y usa el parámetro Header para aplicar la $Header variable.

Ejemplo 4: Conversión de cadenas CSV de objetos de servicio

En este ejemplo se muestra cómo usar el ConvertFrom-Csv cmdlet con el parámetro UseCulture .

(Get-Culture).TextInfo.ListSeparator
$Services = (Get-Service | ConvertTo-Csv)
ConvertFrom-Csv -InputObject $Services -UseCulture

El Get-Culture cmdlet usa las propiedades anidadas TextInfo y ListSeparator para obtener el separador de lista predeterminado de la referencia cultural actual. El Get-Service cmdlet envía objetos de servicio de la canalización a ConvertTo-Csv. ConvertTo-Csv convierte los objetos de servicio en una serie de cadenas CSV. Las cadenas CSV se almacenan en la $Services variable . El ConvertFrom-Csv cmdlet usa el parámetro InputObject y convierte las cadenas CSV de la $Services variable . El parámetro UseCulture usa el separador de lista predeterminado de la referencia cultural actual.

Cuando se use el parámetro UseCulture , asegúrese de que el separador de lista predeterminado de la referencia cultural actual coincide con el delimitador usado en las cadenas CSV. De lo contrario, ConvertFrom-Csv no se pueden generar objetos a partir de las cadenas CSV.

Parámetros

-Delimiter

Especifica el delimitador que separa los valores de propiedad de las cadenas de CSV. El valor predeterminado es una coma (,).

Escriba un carácter, como un signo de dos puntos (:). Para especificar un punto y coma (;) incluirlo entre comillas simples.

Si especifica un carácter distinto del delimitador de cadena real en el archivo, ConvertFrom-Csv no puede crear los objetos a partir de las cadenas CSV y devolverá las cadenas CSV.

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

-Header

Especifica una fila de encabezados de columna alternativa para la cadena importada. El encabezado de columna determina los nombres de propiedad de los objetos creados por ConvertFrom-Csv.

Escriba encabezados de columna como una lista separada por comas. No escriba la cadena de encabezado entre comillas. Incluya cada encabezado de columna entre comillas simples.

Si escribe menos encabezados de columna de los que hay columnas de datos, se descartan las columnas de datos restantes. Si escribe más encabezados de columna de los que hay columnas de datos, los encabezados de columna adicionales se crean con columnas de datos vacías.

Al usar el parámetro Header , omita la cadena de encabezado de columna de las cadenas CSV. De lo contrario, este cmdlet crea un objeto adicional a partir de los elementos de la fila de encabezado.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Especifica las cadenas de CSV que se convertirán en objetos. Introduzca una variable que contenga las cadenas de CSV o escriba un comando o una expresión que obtenga las cadenas de CSV. También puede canalizar las cadenas CSV a ConvertFrom-Csv.

Type:PSObject[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
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:True
Accept pipeline input:False
Accept wildcard characters:False

Entradas

String

Puede canalizar cadenas CSV a este cmdlet.

Salidas

PSObject

Este cmdlet devuelve los objetos descritos por las propiedades de las cadenas CSV.

Notas

Dado que los objetos importados son versiones CSV del tipo de objeto, no se reconocen ni dan formato a las entradas de formato de tipo de PowerShell que dan formato a las versiones que no son CSV del tipo de objeto.

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