Exporter des données vers CSV en PowerShell
-
Exporter des données vers CSV avec la cmdlet PowerShell
Export-CSV
-
Exporter des données vers CSV avec la cmdlet PowerShell
ConvertTo-CSV
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 cmdletConvertTo-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.
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.