PowerShell: Cómo fusionar varios archivos CSV en uno
Puede utilizar la siguiente sintaxis en PowerShell para fusionar varios archivos CSV en uno:
Get-ChildItem -path $path -Filter *.csv |
Select-Object -ExpandProperty FullName |
Import-Csv |
Export-Csv all_data.csv -NoTypeInformation -Append
Este ejemplo en particular fusionará todos los archivos CSV de la carpeta especificada por la variable $path y los generará en un único archivo CSV llamado all_data.csv.
El siguiente ejemplo muestra cómo utilizar esta sintaxis en la práctica.
Ejemplo: Cómo fusionar varios archivos CSV en uno usando PowerShell
Supongamos que tenemos tres archivos CSV ubicados en las siguientes rutas que nos gustaría fusionar en un solo archivo CSV:
- c:\users\bobbi\data3\starters.csv
- c:\users\bobbi\data3\backups.csv
- c:\users\bobbi\data3\reserves.csv
Podemos utilizar el cmdlet Get-Content para ver el contenido de cada uno de estos archivos CSV:
Podemos ver que cada uno de los tres archivos contiene información sobre varios jugadores de baloncesto.
Tenga en cuenta que cada uno de los archivos CSV tiene los mismos nombres de columna.
Podemos usar la siguiente sintaxis para fusionar cada uno de estos archivos CSV en un archivo llamado all_data.csv:
$path = "c:\users\bobbi\data3"
Get-ChildItem -path $path -Filter *.csv |
Select-Object -ExpandProperty FullName |
Import-Csv |
Export-Csv all_data.csv -NoTypeInformation -AppendLa siguiente captura de pantalla muestra cómo utilizar esta sintaxis en la práctica:
Hemos fusionado con éxito los tres archivos CSV en un solo archivo CSV.
Observe que el archivo CSV contiene todas las filas de cada uno de los archivos y observe que la fila del encabezado solo aparece una vez en la parte superior del archivo.
Nota: Al usar Export-Csv incluimos -NoTypeInformation para eliminar la información #TYPE que de otro modo aparecería en el encabezado del archivo CSV.

