Si vous devez envoyer des informations de PowerShell vers un fichier CSV, la cmdlet Export-CSV est là pour vous aider. Cette cmdlet permet aux administrateurs de gagner tellement de temps en transformant du texte brut en un format structuré. Au lieu de jongler avec Excel, nous pouvons utiliser PowerShell pour créer des fichiers CSV.
Vous pouvez créer des fichiers CSV pour générer des rapports, les envoyer à des bases de données et plus encore à partir de n’importe quel objet PowerShell avec la cmdlet Export-Csv.
Le format CSV est simplement une liste de lignes séparées par des virgules stockée sous forme de fichier texte. Comme il s’agit simplement d’un fichier texte, nous pourrions techniquement utiliser une commande générique de fichier texte comme Set-Content
pour faire le travail. Cependant, l’utilisation d’une commande générique nécessiterait la construction de la structure CSV nécessaire par nous-mêmes. Pourquoi le faire lorsque nous avons déjà une commande d’exportation CSV dans Export-Csv
pour envoyer la sortie CSV vers un fichier?
Les fichiers CSV nécessitent une structure spécifique. La capacité de cette cmdlet à comprendre, lire et transformer les informations en fichiers CSV est ce qui rend cette cmdlet PowerShell si pratique.
Gérez et rapportez sur Active Directory, Exchange et Microsoft 365 avec ManageEngine ADManager Plus. Téléchargez la version d’essai gratuite !
Objets -eq Lignes CSV
Le Export-Csv
cmdlet a un seul but; sauvegarder des objets PowerShell dans un fichier CSV.
Supposons que vous ayez un objet avec deux propriétés appelées foo
et bar
. Chacune de ces propriétés a des valeurs respectives de 1
et 2
. Lorsque vous envoyez cet objet à Export-Csv
, il créera un fichier CSV avec deux colonnes et une seule ligne. Vous pouvez ensuite importer le contenu du CSV et inspecter à quoi il ressemble.
PowerShell traite essentiellement un objet en mémoire et un fichier CSV de la même manière ! Il indique également que mes étiquettes de colonnes sont censées être des en-têtes. Exporter des objets en utilisant ce cmdlet revient à enregistrer l’objet sur le système de fichiers. En utilisant la commande texte générique PowerShell Get-Content
, nous pouvons inspecter le texte brut pour voir ce que la commande Export-Csv
a exporté.
Remarquez que la commande utilise les guillemets doubles autour de chaque entrée de ligne. Cela vous permet d’inclure des champs avec des espaces également.
Paramètres Utiles d’Export-CSV
Dans Windows PowerShell 5.1, Export-CSV cmdlte le type d’objet qui a créé le fichier CSV. Si vous préférez ne pas voir cette ligne, un paramètre populaire est NoTypeInformation
qui élimine entièrement cette ligne.
Si vous travaillez avec de nombreux fichiers CSV différents ou sources de données, vous pourriez apprendre à la dure qu’Export-CSV écrase les fichiers existants. Pas de problème cependant si vous utilisez le paramètre Append
. Le paramètre Append
vous permet d’ajouter des lignes au CSV au lieu d’écraser un fichier existant.
Un autre paramètre utile est Delimiter
. De temps en temps, vous pourriez avoir besoin de créer un fichier CSV qui n’utilise pas le séparateur de liste habituel (la virgule) pour séparer les champs. Au lieu de cela, peut-être que vous devez créer un fichier avec beaucoup de données qui utilise des tabulations comme séparateurs ou même des points-virgules. La cmdlet PowerShell Export-Csv
peut nous aider avec cela en spécifiant le délimiteur dont nous avons besoin.
Gérer les guillemets
Lors de la création de lignes CSV, Export-Csv
encadre tous les champs de guillemets. Dans certaines situations, cela peut ne pas être souhaitable. Malheureusement, il n’y a aucun moyen de l’empêcher. Mais, en utilisant un peu plus de code, vous pouvez y arriver.
Vous pouvez voir ci-dessous un exemple de création du fichier CSV. Ensuite, Get-Content
lit le fichier texte brut, remplace toutes les guillemets doubles en mémoire par rien. Ensuite, Set-Content
écrit ces informations en mémoire sur le disque.
Gérez et rapportez l’Active Directory, Exchange et Microsoft 365 avec ManageEngine ADManager Plus. Téléchargez l’essai gratuit !
Résumé
Le cmdlet Export-Csv
est un outil simple mais extrêmement utile pour gérer les données CSV. Il peut comprendre la structure d’un fichier de données CSV et transformer des objets PowerShell en lignes CSV.
I’m not about to go back to batch, or VBScript where creating a CSV file from an existing object required instantiating a FileSystemObject, creating a loop and a bunch of Write()
methods!
Cette commande est une autre excellente raison de commencer à écrire du code PowerShell dès aujourd’hui !