Compartir a través de


Import-CSV

Convierte las propiedades de objeto de un archivo CSV (valores separados por comas) en versiones CSV de los objetos originales.

Sintaxis

Import-CSV [[-Delimiter] <char>] [-Path] <string[]> [-Header <string[]>] [<CommonParameters>]

Import-CSV -UseCulture [-Path] <string[]> [-Header <string[]>] [<CommonParameters>]

Descripción

El cmdlet Import-CSV crea objetos a partir de archivos CSV de longitud variable generados por el cmdlet Export-CSV.

Puede utilizar los parámetros del cmdlet Import-CSV para especificar la fila de encabezado de columna, que determina los nombres de propiedad de los objetos resultantes, especificar el delimitador de elementos o indicar a Import-CSV que use como delimitador de elementos el separador de lista de la actual referencia cultural.

Los objetos creados por Import-CSV 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 utilizar los cmdlets ConvertTo-CSV y ConvertFrom-CSV para convertir los objetos en cadenas CSV (y viceversa). Estos cmdlets son iguales que los cmdlets Export-CSV e Import-CSV, excepto en que no guardan las cadenas CSV en un archivo.

Parámetros

-Delimiter <char>

Especifica el delimitador que separa los valores de propiedad en el archivo CSV. El delimitador predeterminado es una coma (,). Escriba un carácter, como un signo de dos puntos (:). Para especificar un signo de punto y coma (;), escríbalo entre comillas.

Si especifica un carácter distinto del delimitador real de cadenas en el archivo, Import-CSV no podrá crear objetos a partir de las cadenas CSV. En lugar de ello, devolverá las cadenas.

¿Requerido?

false

¿Posición?

2

Valor predeterminado

,

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-Header <string[]>

Especifica una fila de encabezado de columna alternativa para el archivo importado. El encabezado de columna determina los nombres de las propiedades del objeto que Import-CSV crea.

Escriba una lista de los encabezados de columna separados por comas. Incluya cada elemento entre comillas (simples o dobles). No incluya la cadena de encabezado entre comillas. Si escribe menos encabezados de columna que columnas existentes, las restantes columnas no tendrán encabezado. Si escribe más encabezados que columnas existentes, los encabezados adicionales se omitirán.

Si usa el parámetro Header, elimine la fila de encabezado original del archivo CSV. De lo contrario, Import-CSV crea un objeto adicional a partir de los elementos en la fila de encabezado.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-Path <string[]>

Especifica la ruta de acceso al archivo CSV que se va a importar. También puede canalizar una ruta de acceso a Import-CSV.

¿Requerido?

true

¿Posición?

1

Valor predeterminado

ninguno

¿Aceptar canalización?

true (ByValue, ByPropertyName)

¿Aceptar caracteres comodín?

false

-UseCulture

Utilice como delimitador de elementos el separador de lista de la actual referencia cultural. El delimitador predeterminado es una coma (,).

Para obtener el separador de lista de una referencia cultural, utilice el siguiente comando: (Get-Culture).TextInfo.ListSeparator. Si especifica un carácter que no sea el delimitador usado en las cadenas CSV, ConvertFrom-CSV no podrá crear objetos a partir de las cadenas CSV. En lugar de ello, devolverá las cadenas.

¿Requerido?

true

¿Posición?

named

Valor predeterminado

Comma

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

<CommonParameters>

Este cmdlet admite los parámetros comunes: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer y -OutVariable. Para obtener más información, vea about_Commonparameters.

Entradas y salidas

El tipo de entrada es el tipo de los objetos que se pueden canalizar al cmdlet. El tipo devuelto es el tipo de los objetos que el cmdlet devuelve.

Entradas

System.String

Puede canalizar a Import-CSV una cadena que contiene una ruta de acceso.

Salidas

Objeto.

Import-CSV devuelve los objetos descritos por el contenido del archivo CSV.

Notas

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

En el archivo CSV, cada objeto viene representado por una lista delimitada por comas de los valores de propiedad del objeto. Los valores de propiedad se convierten en cadenas (mediante el método ToString() del objeto) de modo que se representan de manera general mediante el nombre del valor de propiedad. Export-CSV no exporta los métodos del objeto.

Ejemplo 1

C:\PS>get-process | export-csv processes.csv

C:\PS> $p = import-CSV processes.csv

C:\PS> $p | get-member

   TypeName: CSV:System.Diagnostics.Process

Name                       MemberType   Definition
----                       ----------   ----------
Equals                     Method       System.Boolean Equals(Object obj)
GetHashCode                Method       System.Int32 GetHashCode()
GetType                    Method       System.Type GetType()
ToString                   Method       System.String ToString()
BasePriority               NoteProperty System.String BasePriority=8
Company                    NoteProperty System.String Company=Microsoft Corporation
...

C:\PS> $p | out-gridview

Descripción
-----------
En este ejemplo, se muestra cómo exportar y, a continuación, importar un archivo CSV de objetos de Microsoft .NET Framework.

El primer comando utiliza el cmdlet Get-Process para obtener los procesos en el equipo local. Utiliza un operador de canalización (|) para enviar los objetos de proceso al cmdlet Export-CSV, que exporta los objetos de proceso al archivo Processes.csv en el directorio actual. 

El segundo comando usa el cmdlet Import-CSV para importar los procesos en el archivo Import-CSV. A continuación, guarda los objetos de proceso resultantes en la variable $p.

El tercer comando usa un operador de canalización para canalizar los objetos importados a los cmdlets Get-Member. El resultado muestra que se trata de objetos CSV:System.Diagnostic.Process, y no de objetos System.Diagnostic.Process que Get-Process devuelve.

Además, como no hay ningún tipo de entrada en los archivos de formato para la versión CSV de los objetos de proceso, a estos objetos no se les aplica formato del mismo modo en que se da formato a los objetos de proceso estándar. 

Para mostrar los objetos, utilice los cmdlets de formato, como Format-Table y Format-List, o canalice los objetos a Out-GridView.





Ejemplo 2

C:\PS>get-process | export-csv processes.csv -Delimiter :

C:\PS> $p = import-csv processes.csv -Delimiter :

Descripción
-----------
En este ejemplo se muestra cómo utilizar el parámetro Delimiter de Import-CSV. En este ejemplo, se exportan los procesos a un archivo en el que se utiliza un signo de dos puntos (:) como delimitador.

Al importar, el archivo Import-CSV utiliza el parámetro Delimiter para indicar el delimitador que se utiliza en el archivo.





Ejemplo 3

C:\PS>$p = import-csv processes.csv -UseCulture

C:\PS> (get-culture).textinfo.listseparator

,

Descripción
-----------
En este ejemplo, se muestra cómo utilizar el parámetro UseCulture de Import-CSV.

El primer comando importa los objetos del archivo Processes.csv en la variable $p. Utiliza el parámetro UseCulture para indicar a Import-CSV que use el separador de lista definido para la actual referencia cultural.

El segundo comando muestra el separador de lista para la actual referencia cultural. Utiliza el cmdlet Get-Culture para obtener la actual referencia cultural. Utiliza el método de puntos (.) para obtener la propiedad TextInfo de la actual referencia cultural y la propiedad ListSeparator del objeto en TextInfo. En este ejemplo, el comando devuelve una coma.





Ejemplo 4

C:\PS>start-job -scriptblock { get-process } | export-csv jobs.csv

C:\PS> $header = "MoreData","StatusMessage","Location","Command","State","Finished","InstanceId","SessionId","Name","ChildJobs","Output","Error","Progress","Verbose","Debug","Warning","StateChanged"

# Delete header from file
C:\PS> $a = (get-content jobs.csv)
C:\PS> $a = $a[0], $a[2..($a.count - 1)]
C:\PS> $a > jobs.csv

C:\PS> $j = import-csv jobs.csv -header $header

C:\PS> $j

MoreData      : True
StatusMessage :
Location      : localhost
Command       : get-process
State         : Running
Finished      : System.Threading.ManualResetEvent
InstanceId    : 135bdd25-40d6-4a20-bd68-05282a59abd6
SessionId     : 1
Name          : Job1
ChildJobs     : System.Collections.Generic.List`1[System.Management.Automation.Job]
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.String]
Debug         : System.Management.Automation.PSDataCollection`1[System.String]
Warning       : System.Management.Automation.PSDataCollection`1[System.String]
StateChanged  :

Descripción
-----------
En este ejemplo, se muestra cómo utilizar el parámetro Header de Import-CSV para cambiar los nombres de las propiedades en el objeto importado resultante.

El primer comando utiliza el cmdlet Start-Job para iniciar un trabajo en segundo plano que ejecuta un comando Get-Process en el equipo local. Un operador de canalización (|) envía el objeto de trabajo resultante al cmdlet Export-CSV, que lo convierte en formato CSV. Un operador de asignación (=) guarda el CSV resultante en el archivo Jobs.csv.

El segundo comando guarda un encabezado en la variable $header. A diferencia del encabezado predeterminado, este encabezado utiliza "MoreData" en lugar de "HasMoreData" y "State" en lugar de "JobStateInfo".

Los tres comandos siguientes eliminan el encabezado original (segunda línea) del archivo Jobs.csv.  

El sexto comando usa el cmdlet Import-CSV para importar el archivo Jobs.csv y convertir las cadenas CSV en una versión CSV del objeto de trabajo. El comando utiliza el parámetro Header para enviar el encabezado alternativo. Los resultados se almacenan en la variable $j. 

El séptimo comando muestra el objeto almacenado en la variable $j. El objeto resultante tiene las propiedades "MoreData" y "State", tal y como se muestra en el resultado del comando.





Ejemplo 5

C:\PS>".\processes.csv" | import-csv

Descripción
-----------
Este comando importa los objetos del archivo Processes.csv.





Vea también

Conceptos

Export-CSV
ConvertTo-CSV
ConvertFrom-CSV