ConvertFrom-Csv
Convierte las propiedades de objeto en formato de valor separado por caracteres (CSV) en versiones CSV de los objetos originales.
Sintaxis
Delimiter (valor predeterminado)
ConvertFrom-Csv
[[-Delimiter] <Char>]
[-InputObject] <PSObject[]>
[-Header <String[]>]
[<CommonParameters>]
UseCulture
ConvertFrom-Csv
[-InputObject] <PSObject[]>
-UseCulture
[-Header <String[]>]
[<CommonParameters>]
Description
El cmdlet ConvertFrom-Csv convierte los datos de valores separados por carácter (CSV) en objetos del tipo PSObject para cada línea de datos CSV. Los nuevos objetos se escriben en la canalización en el mismo 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 cmdlets de Export-Csv 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.
El tipo PSObject mantiene el orden de las propiedades según el orden de los encabezados 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 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 v6 y versiones posteriores. 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 pueden generar objetos a partir de las cadenas CSV.
Ejemplo 5: Convertir datos CSV en formato de registro extendido W3C
En este ejemplo se muestra cómo convertir datos CSV en formato de registro extendido de W3C a objetos .
$logData = @"
#Version: 1.0
#Date: 12-Jan-1996 00:00:00
#Fields: time,cs-method,cs-uri
00:34:23,GET,/foo/bar.html
12:21:16,GET,/foo/bar.html
12:45:52,GET,/foo/bar.html
12:57:34,GET,/foo/bar.html
"@
ConvertFrom-Csv $logData
time cs-method cs-uri
---- --------- ------
00:34:23 GET /foo/bar.html
12:21:16 GET /foo/bar.html
12:45:52 GET /foo/bar.html
12:57:34 GET /foo/bar.html
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 un signo de 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 devuelve 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.
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 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
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 método ToString() del objeto . No hay ninguna manera de exportar los métodos del objeto .
ConvertFrom-Csv también admite el formato de registro extendido de W3C. Las líneas que comienzan con el carácter hash (#) se tratan como comentarios y se omiten a menos que el comentario comience por #Fields: y contenga una lista delimitada por comas de nombres de columna. En ese caso, el cmdlet usa esos nombres de columna. Este es el formato estándar para Windows IIS y otros registros de servidor web. Para obtener más información, consulte el formato extendido de archivo de registro .