ConvertFrom-Csv
Convierte las propiedades de los objetos en formato de valores separados por comas (CSV) en versiones CSV de los objetos originales.
Sintaxis
Delimiter (valor predeterminado)
ConvertFrom-Csv
[-InputObject] <psobject[]>
[[-Delimiter] <char>]
[-Header <string[]>]
[<CommonParameters>]
UseCulture
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 del encabezado de columna, que determina los nombres de propiedad de los objetos resultantes, para especificar el delimitador de elementos o para indicar a este cmdlet que use 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 viceversa). Estos cmdlets son los mismos que los cmdlets ConvertTo-Csv y ConvertFrom-Csv, salvo que guardan las cadenas CSV en un archivo.
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 cmdlet Get-Process envía los procesos de la canalización a ConvertTo-Csv. El cmdlet ConvertTo-Csv convierte los objetos de proceso en una serie de cadenas CSV. El cmdlet ConvertFrom-Csv convierte las cadenas CSV en versiones CSV de los objetos de proceso originales. Las cadenas CSV se guardan en la variable $P.
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 a través de la canalización a ConvertTo-Csv. El cmdlet ConvertTo-Csv convierte el objeto date en una serie de cadenas CSV.
El parámetro Delimitador se usa para especificar un delimitador de punto y coma. Las cadenas se guardan en la variable $Date.
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
$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 cmdlet Start-Job inicia un trabajo en segundo plano que ejecuta Get-Process. Un objeto de tarea se envía a través de la canalización a 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 variable $Header contiene un encabezado personalizado que reemplaza los siguientes valores predeterminados: HasMoreData, JobStateInfo, PSBeginTime, PSEndTimey PSJobTypeName. La variable $J contiene la cadena CSV y se usa para quitar el encabezado predeterminado. El cmdlet ConvertFrom-Csv convierte la cadena CSV en un PSCustomObject y utiliza el parámetro Header para aplicar la variable $Header.
Ejemplo 4: Convertir cadenas CSV de objetos de servicio
En este ejemplo se muestra cómo usar el cmdlet ConvertFrom-Csv con el parámetro UseCulture.
(Get-Culture).TextInfo.ListSeparator
$Services = (Get-Service | ConvertTo-Csv)
ConvertFrom-Csv -InputObject $Services -UseCulture
El cmdlet Get-Culture usa las propiedades anidadas TextInfo y ListSeparator para obtener el separador de lista predeterminado de la cultura actual. El cmdlet Get-Service envía objetos de servicio a través de la canalización hasta ConvertTo-Csv. El ConvertTo-Csv convierte los objetos de servicio en una serie de cadenas CSV. Las cadenas CSV se almacenan en la variable $Services. El cmdlet ConvertFrom-Csv usa el parámetro InputObject y convierte las cadenas CSV de la variable $Services. El parámetro UseCulture usa el separador de lista predeterminado de la cultura 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 CSV. El valor predeterminado es una coma (,).
Escriba un carácter, como dos puntos (:). Para especificar un punto y coma (;) escríbalo entre comillas simples.
Si especifica un carácter distinto del delimitador de cadena real en el archivo, ConvertFrom-Csv no podrá crear los objetos a partir de las cadenas CSV y devolverá las cadenas CSV.
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 |
-Header
Especifica una fila de encabezado de columna alternativa para la cadena importada. El encabezado de columna determina los nombres de propiedad de los objetos creados por ConvertFrom-Csv.
Introduzca los 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 del CSV. De lo contrario, este cmdlet crea un objeto adicional a partir de los elementos de la fila de encabezado.
Propiedades de parámetro
| Tipo: | String[] |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
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 |
-InputObject
Especifica las cadenas CSV que se van a convertir en objetos. Escriba una variable que contenga las cadenas CSV o escriba un comando o expresión que obtenga las cadenas CSV. También puede canalizar las cadenas CSV a ConvertFrom-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 |
-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: | True |
| 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
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, las entradas de formato de tipo de PowerShell que dan formato a las versiones no CSV del tipo de objeto no los reconocen ni les dan formato.
En 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.