¿Cómo importar CSV a una matriz en PowerShell?
Recientemente, recibí el requisito de importar datos de un archivo CSV (valores separados por comas) a una matriz en PowerShell para su posterior procesamiento. En este tutorial, le mostraré cómo importar datos CSV a una matriz en PowerShell usando diferentes métodos con ejemplos.
Para importar datos CSV a una matriz en PowerShell, use el cmdlet Import-Csv seguido de la ruta del archivo, que crea una matriz de objetos a partir del archivo CSV. Por ejemplo, $array=Import-Csv -Path 'file.csv' lee 'file.csv' y almacena los datos en $array. Cada fila del CSV se convierte en un objeto de la matriz, con propiedades correspondientes a los encabezados de las columnas.
Importe CSV a una matriz en PowerShell usando el cmdlet Import-Csv
Un archivo CSV es un archivo de texto sin formato que contiene datos separados por comas. Cada línea de un archivo CSV suele representar un registro de datos y cada registro consta de uno o más campos separados por comas. Los archivos CSV se utilizan ampliamente para el intercambio de datos porque son fáciles de crear, leer y procesar para muchas aplicaciones.
Existen diferentes métodos para importar CSV a una matriz en PowerShell.
¿Qué es el cmdlet Import-Csv?
PowerShell ofrece un cmdlet integrado llamado Import-Csv que está diseñado específicamente para leer archivos CSV y convertirlos en objetos. Según la documentación de Microsoft, el cmdlet Import-Csv crea objetos personalizados similares a tablas a partir de los elementos de los archivos CSV, y cada columna se convierte en una propiedad del objeto personalizado.
La forma más sencilla de importar datos CSV a PowerShell es mediante el cmdlet Import-Csv. Este cmdlet lee el archivo CSV y lo convierte en una matriz de objetos, donde cada objeto representa una fila en el archivo CSV.
Aquí hay un ejemplo básico:
$data = Import-Csv -Path "C:\MyFolder\Users.csv"En este ejemplo, $data es una matriz donde cada elemento es un objeto personalizado con propiedades correspondientes a los encabezados de columna en el archivo CSV.
Después de importar los datos CSV, puede procesar cada registro usando un bucle ForEach. A continuación se muestra un ejemplo que muestra cada registro:
$data = Import-Csv -Path "C:\MyFolder\Users.csv"
foreach ($record in $data) {
Write-Host "Name: $($record.Name), Email: $($record.Email)"
}Suponiendo que el archivo CSV tiene columnas denominadas "Nombre" y "Correo electrónico", este script imprimirá el nombre y el correo electrónico de cada registro.
Ahora mire el resultado en la captura de pantalla a continuación, después de ejecutar el script usando el código VS.
Si su archivo CSV no contiene encabezados, puede especificarlos usando el parámetro -Header:
$headers = "Name", "Email", "Department"
$data = Import-Csv -Path "C:\MyFolder\Users.csv" -Header $headersAhora, $data utilizará los encabezados proporcionados para crear objetos.
Algunos archivos CSV pueden utilizar delimitadores diferentes, como punto y coma o tabulaciones. Puede especificar el delimitador con el parámetro -Delimiter:
$data = Import-Csv -Path "C:\MyFolder\Users.csv" -Delimiter ";"
Una ArrayList es una matriz dinámica que puede crecer o reducirse según sea necesario. Para importar datos CSV a un ArrayList, puede utilizar el cmdlet Import-Csv en combinación con un bucle ForEach:
[array]$data = @()
Import-Csv -Path "C:\MyFolder\Users.csv" | ForEach-Object {
$data += $_
}Este script lee el archivo CSV y agrega cada registro a la matriz $data.
Importar CSV a una matriz en PowerShell: ejemplo real
Supongamos que tiene un archivo CSV llamado users.csv con el siguiente contenido:
Id,Name,Email
1,John Doe,johndoe@example.com
2,Jane Smith,janesmith@example.com
3,Emily Jones,emilyjones@example.comPara practicar esto, también puedes descargar el archivo users.csv.
Para importar este CSV a una matriz en PowerShell y mostrar los detalles de cada usuario, usaría el siguiente script:
# Import the CSV file into an array
$usersArray = Import-Csv -Path "C:\MyFolder\users.csv"
# Loop through the array and display user details
foreach ($user in $usersArray) {
Write-Host "User ID: $($user.Id)"
Write-Host "Name: $($user.Name)"
Write-Host "Email: $($user.Email)"
Write-Host "-------------------"
}Una vez que ejecute el script de PowerShell anterior, verá el resultado en la captura de pantalla a continuación.
User ID: 1
Name: John Doe
Email: johndoe@example.com
-------------------
User ID: 2
Name: Jane Smith
Email: janesmith@example.com
-------------------
User ID: 3
Name: Emily Jones
Email: emilyjones@example.com
-------------------Conclusión
La importación de datos CSV a una matriz en PowerShell se puede lograr fácilmente utilizando el cmdlet Import-Csv . En este tutorial de PowerShell, expliqué cómo importar CSV a una matriz en PowerShell usando el cmdlet Import-Csv.

