Exporter des données vers CSV en PowerShell

Migel Hewage Nimesha 30 janvier 2023
  1. Exporter des données vers CSV avec la cmdlet PowerShell Export-CSV
  2. Exporter des données vers CSV avec la cmdlet PowerShell ConvertTo-CSV
Exporter des données vers CSV en PowerShell

Le fichier CSV est juste un fichier texte délimité avec un format spécifique appliqué à son contenu. Le format est très similaire à une structure de table simple, comme illustré dans l’exemple suivant.

Par example,

Name, NIC, Phone

John, 394829G,  +671392392

Risabh, 32909340J, +12328833

Le CSV est la forme abrégée de Comma Separated Values. Comme le suggère le type de fichier (CSV), il sépare les valeurs de données à l’aide de virgules. Il existe différents outils disponibles pour générer des fichiers CSV avec des données.

Dans cet article, nous verrons comment exporter des données vers un fichier CSV dans PowerShell.

Exporter des données vers CSV avec la cmdlet PowerShell Export-CSV

Le Export-CSV est l’une des cmdlets PowerShell permettant d’exporter des données au format CSV. Cette cmdlet est relativement facile à utiliser et quelques propriétés sont également disponibles.

La syntaxe de la cmdlet Export-CSV

<data_objects/content> | Export-CSV -Path <path> 
  • <data_objects/content> : les objets de données/contenu alimentés par la cmdlet Export-CSV.
  • Export-CSV : la cmdlet responsable de l’exportation des données au format CSV.
  • -Path : le chemin d’accès au fichier csv à enregistrer.

Exemple 01

Nous allons utiliser la cmdlet Get-Process pour renvoyer certains objets de données, et ceux-ci peuvent être transmis à la cmdlet Export-CSV pour exporter au format CSV.

Get-Process

Production :

Handles	NPM(k)	PM(K)	WS(K)	CPU(s)	Id		SI 		ProcessName
313		14		3712	10756	7.69	39500	0		ApplicationFrameHost
507		30		22864	22836	2.11	18156	2		armsvc

Plusieurs objets processus peuvent être renvoyés. Nous pouvons utiliser l’opérateur pipe (|) pour alimenter les objets renvoyés vers la cmdlet Export-CSV. Ensuite, vous pouvez vérifier le contenu CSV exporté à l’aide de la cmdlet Get-Content.

Get-Process | Export-CSV -Path .\ProcessObjects.csv
Get-Content -Path .\ProcessObjects.csv

Production :

"ProcessName","SI","Handles","VM","WS","PM","NPM", .....
"armsvc","2","511","2203597099008","35364864","21979136","30048", ...
"xyz","0","501","299393939","9982824","0021000","393393", ...

Il existe peu de propriétés utiles disponibles pour modifier le comportement par défaut de la cmdlet Export-CSV.

Exemple 02

Get-Process | Export-CSV -Path .\ProcessObjects.csv -Delimiter ';'
Get-Content -Path .\ProcessObjects.csv

Production :

"ProcessName";"SI";"Handles";"VM";"WS";"PM";"NPM"; .....
"armsvc";"2";"511";"2203597099008";"35364864";"21979136";"30048"; ...

L’option -Delimiter change le délimiteur par défaut , au symbole spécifié.

Exporter des données vers CSV avec la cmdlet PowerShell ConvertTo-CSV

La cmdlet ConvertTo-CSV est presque similaire à la cmdlet Export-CSV décrite ci-dessus. La seule différence entre les deux est que la cmdlet Export-csv enregistre les chaînes CSV dans un fichier, mais ce n’est pas le cas avec ConvertTo-CSV. Il retourne juste les chaînes de valeurs séparées par des virgules.

Syntaxe de la Cmdlet ConvertTo-CSV

<data_objects/content> | ConvertTo-CSV 
  • <data_objects/content> : Les objets de données/contenu qui sont envoyés à la cmdlet ConvertTo-CSV.
  • ConvertTo-CSV : La cmdlet qui est responsable du retour des chaînes CSV.

Exemple

Get-Process | ConvertTo-Csv

Production :

"ProcessName","SI","Handles","VM","WS","PM","NPM", .....
"armsvc","2","511","2203597099008","35364864","21979136","30048", ...
"xyz","0","501","299393939","9982824","0021000","393393", ...p

Par conséquent, les cmdlets Export-CSV et ConvertTo-CSV sont des outils utiles pour générer des données au format CSV à l’aide de PowerShell.

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.

Article connexe - PowerShell CSV