Compartir a través de


ConvertFrom-Csv

Convierte las propiedades de objeto en formato de valor separado por caracteres (CSV) en versiones CSV de los objetos originales.

Syntax

ConvertFrom-Csv
                [[-Delimiter] <Char>]
                [-InputObject] <PSObject[]>
                [-Header <String[]>]
                [<CommonParameters>]
ConvertFrom-Csv
                -UseCulture
                [-InputObject] <PSObject[]>
                [-Header <String[]>]
                [<CommonParameters>]

Description

El ConvertFrom-Csv cmdlet convierte los datos de valores separados por caracteres (CSV) en objetos de tipo PSObject para cada línea de datos CSV. Los nuevos objetos se escriben en la canalización en el orden en que se leen de los datos CSV. Los valores de la fila de encabezado de columna del CSV se convierten en los nombres de las propiedades agregadas a cada nuevo PSObject.

Los objetos que ConvertFrom-Csv crea son objeto de tipo PSObject para cada fila del archivo CSV. 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 una copia de seguridad. Estos cmdlets son los mismos que los ConvertTo-Csv cmdlets y ConvertFrom-Csv , salvo que guardan las cadenas CSV en un archivo.

El tipo PSObject mantiene el orden de las propiedades en el orden del encabezado de columna. Esto significa que obtiene el mismo orden de columna al convertir los objetos de nuevo en formato CSV.

Ejemplos

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

En este ejemplo se muestra cómo convertir los procesos en el equipo local en formato CSV y, a continuación, restaurarlos al 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 del 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 y ConvertTo-Csv 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 v6 y versiones posteriores. 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 psCustomObject y usa el parámetro Header para aplicar la $Header variable.

Ejemplo 4: Convertir 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 dos puntos (:). Para especificar un punto y coma (;) lo incluye 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 caracteres. no incluya 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

En formato CSV, cada objeto se representa mediante una lista separada por caracteres de los valores de propiedad del objeto. Los valores de propiedad se convierten en cadenas mediante el ToString() método del objeto . No hay ninguna manera de exportar los métodos del objeto .