Command-separated Value
ou CSV
sont un type très populaire de fichiers texte qui sont utilisés à différentes fins. La particularité du CSV réside dans sa capacité à stocker des données structurées en délimitant les valeurs ou les colonnes par des virgules. Les fichiers CSV sont compatibles avec les fichiers Excel pour l’importation et l’exportation.
Exportation vers un fichier CSV délimité par des virgules
Nous allons commencer par un exemple simple. Get-Process
commande est utilisée pour lister les processus en cours d’exécution avec différentes informations comme Handle, NPM, CPU,ID, ProcessName etc. Nous pouvons utiliser la commande Export-CSV afin de stocker ces informations de processus délimitées par la commande.
PS> Get-Process
Nous pouvons maintenant mettre ces informations de processus en cours d’exécution dans un fichier CSV en redirigeant la sortie Get-Process. Nous fournirons le nom du fichier avec l’option -Path
. Le nom du fichier sera ProcessList.csv.
PS> Get-Process | Export-CSV -Path ProcessList.csv
Alternativement, nous pouvons fournir un répertoire différent avec l’option -Path. Dans la commande suivante, nous allons mettre le fichier ProcessList.csv dans le C:\Users\İsmail Baydan\Desktop
.
PS> Get-Content 'C:\Users\İsmail Baydan\Desktop\ProcessList.csv'
Définir le délimiteur pour le fichier CSV
Les délimiteurs sont une partie importante des fichiers CSV. Par défaut, les fichiers CSV utilisent la commande comme délimiteur. Mais nous pouvons changer le délimiteur comme nous le souhaitons. Nous utiliserons l’option -Delimeter afin de définir un caractère de délimitation différent. Dans l’exemple suivant, nous allons définir le signe égal = comme délimiteur. Mettre le délimiteur à l’intérieur des guillemets doubles est une très bonne façon d’éviter les erreurs.
PS> Get-Process | Export-CSV -Delimiter "=" -Path ProcessList.csv
Export To Semicolon Delimited CSV File
La virgule est le délimiteur standard pour les fichiers CSV. Mais nous pouvons utiliser différents délimiteurs afin de séparer les colonnes. Dans certains cas, une virgule peut être utilisée à l’intérieur du contenu que nous voulons mettre dans le fichier CSV. Cela fera planter le fichier CSV car le délimiteur et le contenu seront identiques et l’analyse du contenu avec le délimiteur sera source d’erreurs. Une bonne alternative au délimiteur de la commande est donc le point-virgule qui est rarement utilisé dans le contenu des fichiers CSV. Dans l’exemple suivant, nous allons définir le point-virgule comme délimiteur.
PS> Get-Process | Export-CSV -Delimiter ";" -Path ProcessList.csv
Sélectionner les propriétés pour écrire le fichier CSV
Jusqu’à présent, nous avons travaillé avec la commande Get-Process qui va lister toutes les propriétés des processus en cours d’exécution. Dans certains cas, nous n’avons pas besoin de mettre toutes les propriétés dans le fichier CSV. Nous pouvons sélectionner les propriétés qui peuvent être mises dans le fichier CSV. Nous utiliserons la commande Select-Object
et son option -Property
comme ci-dessous.
PS> Get-Process | Select-Object -Property ProcessName,Id | Export-CSV -Path ProcessList.csv
Append To The Existing CSV File
Un autre cas d’utilisation de la commande Export-.CSV est l’ajout d’un nouveau contenu CSV dans le contenu CSV existant. Nous pouvons utiliser l’option -Append
qui ajoutera un nouveau contenu CSV dans le fichier existant.
PS> Get-Process | Export-CSV -Delimiter -Append -Path ProcessList.csv
Ne pas écraser le fichier CSV existant
Par défaut la commande Export-CSV écrasera sur le fichier existant sans aucun avertissement. Nous pouvons empêcher ces actions avec l’option -NoClobber
qui n’écrasera pas le fichier existant et imprimera et erreur realted given file allready exists.
PS> Get-Process | Export-CSV -NoClobber -Path ProcessList.csv
Ecraser les fichiers en lecture seule
Les fichiers en lecture seule.Only Files
Par défaut, les fichiers en lecture seule peuvent être édités, ajoutés par défaut. Mais la commande Export-CSV peut changer l’attribut read-only pour l’édition et revenir ensuite à read-only. Nous allons forcer à l’opération d’écriture avec l’option -Force
comme ci-dessous.
PS> Get-Process | Export-CSV -Append -Force -Path ProcessList.csv
Définir l’encodage du fichier CSV
Comme le fichier CSV est un fichier texte, il possède une option d’encodage. Par défaut, l’UTF-8 est l’encodage par défaut pour le texte et les fichiers CSV. Mais dans certains cas, nous pouvons avoir besoin de changer l’encodage par défaut et de définir un encodage spécifique. Nous pouvons utiliser l’option -Encoding et fournir un nom d’encodage comme ASCII. Dans l’exemple suivant, nous allons définir l’encodage du fichier CSV comme ASCII.
PS> Get-Process | Export-CSV -Encoding ASCII -Path ProcessList.csv
Vous trouverez ci-dessous les formats d’encodage populaires et disponibles qui peuvent être utilisés avec l’Export-CSV.
- ASCII
- BigEndianUnicode
- OEM
- Unicode
- UTF7
- UTF8
- UTF8BOM
- UTF8NoBOM
- UTF32
.