Comment exporter vers CSV dans PowerShell

Comment exporter vers CSV dans PowerShell
Le CSV (valeurs séparées de virgules) est un moyen de stocker des données dans les fichiers texte brut. Il s'agit d'une méthode efficace de partage d'informations structurées, similaires à une feuille de calcul. C'est un format universel qui est soutenu par de nombreuses applications de bureau et de base de données.

Le terme CSV a également d'autres significations, par exemple, des «valeurs séparées par des caractères», «fichiers délimités par virgule», etc.

Dans ce guide, nous allons montrer comment exporter des données dans CSV dans PowerShell.

La structure du fichier CSV

Le format CSV suit une structure très simple. Tout fichier CSV aura ".CSV "comme extension de fichier. Ici, j'ai généré un exemple de fichier CSV contenant

$ échantillon de chat.CSV

Comme nous pouvons le voir, chaque ligne contient plusieurs valeurs séparées par des virgules. Il n'y a pas de limite au nombre d'entrées qu'un fichier CSV peut contenir.

La simplicité de la structure est la caractéristique clé. Le format CSV est conçu pour qu'il puisse facilement être utilisé pour exporter des données dans d'autres programmes. Le résultat est également lisible par l'homme et peut être consulté à l'aide de n'importe quel éditeur de texte. Des applications de bureau comme Mme Excel, Calc, etc., prend également en charge CSV par défaut.

Exportation vers CSV de PowerShell

PowerShell est une puissante langue de coquille et de script. Il prend en charge de nombreuses fonctionnalités de base et avancées, notamment en exportant diverses données au format CSV.

Semblable à tout autre shell, PowerShell a son propre ensemble de commandes, appelées cmdlets. Pour exporter vers CSV, PowerShell est livré avec une applet de commande dédiée Export-CSV. Il prend un objet comme entrée et l'exporte vers un fichier CSV.

En raison de la structure simple, il pourrait également être réalisé en utilisant le Contenu set cmdlet. Cependant, cela vous oblige à définir manuellement la structure CSV. En utilisant Export-CSV réduit considérablement la charge de travail.

La page d'aide de l'export-CSV affichera toutes les commandes prises en charge.

$ Aide à l'exportation-CSV

Un exemple pratique serait d'exporter la liste des processus en cours d'exécution. Il peut être utile dans certains scénarios de débogage / surveillance. Pour obtenir la liste des processus, nous utiliserons la cmdlet Faire un processus.

$ Get-process

Maintenant, tuyaux la sortie à Export-CSV.

$ Get-process | Export-CSV -Path / Home / Viktor / Desktop / Process.CSV

Ici, le drapeau «-Path» décrit l'emplacement pour enregistrer le fichier CSV généré. Pour vérifier le contenu du fichier CSV, utilisez la cmdlet Obtenir du contenu.

$ Get-content / Home / Viktor / Desktop / Process.CSV

Délimiteur personnalisé

Pour tout fichier CSV, il est standard d'utiliser la virgule (,) comme délimiteur. Cependant, vous voudrez peut-être changer le délimiteur en autre chose qu'une virgule dans certaines situations. L'Export-CSV Cmdlet prend en charge la définition d'un délimiteur personnalisé pour le fichier CSV. Ça peut être n'importe quel personnage.

Dans l'exemple suivant, nous utiliserons un point-virgule (;) comme délimiteur.

$ Get-process | Export-CSV -NotypeInformation -Delimiter ";" -Path / Home / Viktor / Desktop / Processus.CSV

Vérifions la sortie de la commande.

$ Get-content / Home / Viktor / Desktop / Process.CSV

Ajout du fichier CSV existant

Le Export-CSV Cmdlet prend en charge l'ajout de contenu aux fichiers CSV existants. Il peut aider à compiler des données dans une seule base de données.

Pour ajouter, ajouter le drapeau «-SEPEND». Utilisez l'emplacement du fichier CSV existant comme valeur pour «-Path».

$ Get-process | Export-CSV -Apend -Path / Home / Viktor / Desktop / Process.CSV

Sélection de propriétés à écrire sur CSV

Jetons un coup d'œil à la sortie de Get-Process en premier.

$ Get-process

Ici, chaque colonne présente un certain type d'informations sur les processus en cours d'exécution. Chacune des colonnes représente une propriété du processus associé. Jusqu'à présent, nous avons travaillé avec toutes les propriétés des processus (les transférer dans un fichier CSV). Cependant, toutes les propriétés ne sont pas nécessaires pour chaque situation.

Nous pouvons ajouter un filtre intermédiaire pour obtenir seulement quelques-uns des propriétés. Pour ce faire, nous allons prendre l'aide d'une autre candidature Select-Object.

Nous ne ferons que l'exportation du nom du processus (processName) et ID (ID) dans l'exemple suivant.

$ Get-process | Select-Object -Property ProcessName, id | Export-CSV -NotypeInformation -Path / Home / Viktor / Desktop / Process.CSV
$ Get-content / Home / Viktor / Desktop / Process.CSV

Pas de substances

Si vous ne parvenez pas au fichier existant, Export-CSV écrasera le fichier existant par défaut. Dans de nombreuses situations, cela peut provoquer une suppression injustifiée de journaux importants. Pour éviter de tels accidents, nous pouvons dire à l'export-CSV de ne pas écraser un fichier existant par défaut.

Pour ce faire, ajoutez le drapeau «-noclobber».

$ Get-process | Export-CSV -Noclobber -Path / Home / Viktor / Desktop / Process.CSV

Comme vous pouvez le voir, il lance maintenant une erreur en mentionnant que le fichier existe déjà.

Écraser les fichiers en lecture seule

Par défaut, un fichier en lecture seule n'autorise pas l'édition. Cependant, nous pouvons utiliser PowerShell pour forcer l'édition au fichier. Cette fonctionnalité est cuite directement dans Export-CSV. La façon dont il est fait est en décrochant le fichier en lecture seule, en effectuant le montage, puis en le marquant à nouveau en lecture seule.

Pour écraser le fichier en lecture seule existant, utilisez le drapeau «-force».

$ Get-process | Export-CSV -Apend -Force -Path / Home / Viktor / Desktop / Process.CSV

Encodage de fichiers

Pour l'encodage des fichiers, Export-CSV utilise UTF-8 par défaut. C'est le codage universel pour tous les fichiers texte. Cependant, dans des situations spécifiques, un codage différent a plus de sens. Heureusement, Export-CSV prend en charge la définition du codage spécifique.

Pour spécifier un encodage spécifique, utilisez le drapeau «-coding».

$ Get-process | Encodage d'exportation-CSV -Chemin / Home / Viktor / Desktop / Processus.CSV

Voici une liste de tous les formats de codage pris en charge.

  • Ascii
  • Unicode
  • UTF7
  • UTF8
  • Utf8bom
  • Utf8Nobom
  • UTF32
  • Bigendianunicode

Dernières pensées

L'Export-CSV Cmdlet dans PowerShell est un outil puissant pour exporter des informations au format CSV. Ce guide démontre certaines des façons d'exporter-CSV. Il peut également être mis en œuvre dans des scripts PowerShell pour automatiser le transfert de données. Il convertit les données structurées en un format plus simple et lisible par l'utilisateur que de nombreuses applications peuvent utiliser.

Happy Computing!