PowerShell : Comment récupérer les en-têtes d’un fichier CSV ?

I. Présentation

Pour diverses raisons, au sein d'un script PowerShell il peut être intéressant de récupérer la liste des en-têtes d'un fichier CSV. Par exemple, pour comparer deux fichiers CSV avec le commandlet Compare-Object, on doit spécifier les propriétés qui sont alors les noms des en-têtes du CSV. Si l'on récupère en automatique ces valeurs, ça permet de variabiliser cette partie 🙂

II. Stocker les valeurs d'en-têtes d'un CSV

Pour commencer, au sein de la variable $CSVExample on va stocker le chemin vers le fichier CSV.

$CSVExample = "C:\temp\csv-example.csv"

Ce CSV contient les en-têtes suivantes : Nom, Prenom, Age, Ville

Ensuite, on va utiliser le commandlet Get-Content qui permet de récupérer le contenu d'un fichier, sous forme de tableau. On va s'intéresser à la première ligne du fichier puisque ce sont les en-têtes, ce qui correspond à la ligne zéro (0) du tableau. Pour afficher cette ligne, voici ce que l'on va saisir :

(Get-Content $CSVExample)[0]

Ce qui va retourner, par exemple :

Nom;Prenom;Age;Ville

Maintenant que l'on sait comment obtenir les valeurs de l'en-tête, on peut aussi récupérer de manière indépendante chaque valeur. Ceci s'effectue via un split sur le caractère séparateur puisqu'il sépare chaque valeur.

((Get-Content $CSVExample)[0]).Split(";")

La commande ci-dessus va retourner la liste des valeurs d'en-tête du CSV. Si l'on veut aller encore plus finement dans la récupération des valeurs, on peut aller piocher dans le tableau généré suite au split et récupérer une valeur du tableau. Par exemple, pour obtenir le nom de la première colonne du CSV :

(((Get-Content $CSVExample)[0]).Split(";"))[0]

Le fait de spliter la ligne permet aussi de compter le nombre de colonne (valeurs d'en-tête) contenue dans le fichier CSV :

(((Get-Content $CSVExample)[0]).Split(";")).Count

Ce qui retournera 4.

Pour finir ce tutoriel, voici une copie d'écran qui illustre quelques-unes des commandes écrites ci-dessus :

Amusez-vous bien 🙂

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian BURNEL

Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.

Nombre de posts de cet auteur : 5549.Voir tous les posts

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.