ConvertFrom-Csv
Convierte las propiedades de objeto en formato de valor separado por caracteres (CSV) en versiones CSV de los objetos originales.
Sintaxis
ConvertFrom-Csv
[[-Delimiter] <Char>]
[-InputObject] <PSObject[]>
[-Header <String[]>]
[<CommonParameters>]
ConvertFrom-Csv
-UseCulture
[-InputObject] <PSObject[]>
[-Header <String[]>]
[<CommonParameters>]
Description
El cmdlet ConvertFrom-Csv
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 cmdlets de Export-Csv
y Import-Csv
para convertir objetos en cadenas CSV en un archivo y en una copia de seguridad. 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 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 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 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 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 cmdlet Start-Job
inicia un trabajo en segundo plano que ejecuta Get-Process
. Un objeto de trabajo se envía a 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 de y usa 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 referencia cultural actual. El cmdlet Get-Service
envía objetos de servicio a la canalización a 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 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 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 (;
) 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.
Tipo: | Char |
Posición: | 1 |
Valor predeterminado: | comma (,) |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | 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 CSV. De lo contrario, este cmdlet crea un objeto adicional a partir de los elementos de la fila de encabezado.
Tipo: | String[] |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | 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
.
Tipo: | PSObject[] |
Posición: | 0 |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | 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
.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
Entradas
Puede canalizar cadenas CSV a este cmdlet.
Salidas
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 .