Partager via


ConvertFrom-Csv

Convertit les propriétés d’objet au format CSV (character-separated value) en versions CSV des objets d’origine.

Syntax

ConvertFrom-Csv
                [[-Delimiter] <Char>]
                [-InputObject] <PSObject[]>
                [-Header <String[]>]
                [<CommonParameters>]
ConvertFrom-Csv
                -UseCulture
                [-InputObject] <PSObject[]>
                [-Header <String[]>]
                [<CommonParameters>]

Description

L’applet ConvertFrom-Csv de commande convertit les données de valeurs séparées par des caractères (CSV) en objets de type PSObject pour chaque ligne de données CSV. Les nouveaux objets sont écrits dans le pipeline dans l’ordre dans lequel ils sont lus à partir des données CSV. Les valeurs de la ligne d’en-tête de colonne du CSV deviennent les noms des propriétés ajoutées à chaque nouvel objet PSObject.

Les objets créés ConvertFrom-Csv sont un objet de type PSObject pour chaque ligne du fichier CSV. Les valeurs de propriété des objets CSV sont des versions sous forme de chaîne des valeurs de propriété des objets d'origine. Les versions CSV des objets n’ont aucune méthode.

Vous pouvez également utiliser les applets de commande et Import-Csv les Export-Csv applets de commande pour convertir des objets en chaînes CSV dans un fichier et un retour. Ces applets de commande sont identiques aux ConvertTo-Csv applets de commande et ConvertFrom-Csv aux applets de commande, sauf qu’elles enregistrent les chaînes CSV dans un fichier.

Le type PSObject conserve l’ordre des propriétés dans l’ordre d’en-tête de colonne. Cela signifie que vous obtenez le même ordre de colonne lorsque vous convertissez les objets au format CSV.

Exemples

Exemple 1 : Convertir des processus au format CSV sur l’ordinateur local

Cet exemple montre comment convertir les processus sur l’ordinateur local au format CSV, puis les restaurer au format objet.

$P = Get-Process | ConvertTo-Csv
$P | ConvertFrom-Csv

L’applet Get-Process de commande envoie les processus vers le pipeline ConvertTo-Csv. L’applet ConvertTo-Csv de commande convertit les objets de processus en une série de chaînes CSV. L’applet ConvertFrom-Csv de commande convertit les chaînes CSV en versions CSV des objets de processus d’origine. Les chaînes CSV sont enregistrées dans la $P variable.

Exemple 2 : Convertir un objet de données au format CSV, puis au format d’objet CSV

Cet exemple montre comment convertir un objet de données au format CSV, puis au format objet CSV.

$Date = Get-Date | ConvertTo-Csv -Delimiter ';'
ConvertFrom-Csv -InputObject $Date -Delimiter ';'

La première commande utilise Get-Date pour envoyer la date et l’heure actuelles vers le pipeline ConvertTo-Csv. L’applet ConvertTo-Csv de commande convertit l’objet date en une série de chaînes CSV. Le paramètre Délimiteur est utilisé pour spécifier un délimiteur point-virgule. Les chaînes sont enregistrées dans la $Date variable.

Exemple 3 : Utiliser le paramètre d’en-tête pour modifier les noms des propriétés

Cet exemple montre comment utiliser le paramètre Header de ConvertFrom-Csv façon à modifier les noms des propriétés dans l’objet importé résultant.

$J = Start-Job -ScriptBlock { Get-Process } | ConvertTo-Csv  -NoTypeInformation
$Header = 'State', 'MoreData', 'StatusMessage', 'Location', 'Command',
          'StateInfo', 'Finished', 'InstanceId', 'Id', 'Name', 'ChildJobs',
          'BeginTime', 'EndTime', 'JobType', 'Output', 'Error', 'Progress',
          'Verbose', 'Debug', 'Warning', 'Information'
# Delete the default header from $J
$J = $J[1..($J.count - 1)]
$J | ConvertFrom-Csv -Header $Header

State         : Running
MoreData      : True
StatusMessage :
Location      : localhost
Command       : Get-Process
StateInfo     : Running
Finished      : System.Threading.ManualResetEvent
InstanceId    : a259eb63-6824-4b97-a033-305108ae1c2e
Id            : 1
Name          : Job1
ChildJobs     : System.Collections.Generic.List`1[System.Management.Automation.Job]
BeginTime     : 12/20/2018 18:59:57
EndTime       :
JobType       : BackgroundJob
Output        : System.Management.Automation.PSDataCollection`1[System.Management.Automation.PSObject]
Error         : System.Management.Automation.PSDataCollection`1[System.Management.Automation.ErrorRecord]
Progress      : System.Management.Automation.PSDataCollection`1[System.Management.Automation.ProgressRecord]
Verbose       : System.Management.Automation.PSDataCollection`1[System.Management.Automation.VerboseRecord]
Debug         : System.Management.Automation.PSDataCollection`1[System.Management.Automation.DebugRecord]
Warning       : System.Management.Automation.PSDataCollection`1[System.Management.Automation.WarningRecord]
Information   : System.Management.Automation.PSDataCollection`1[System.Management.Automation.InformationRecord]

L’applet Start-Job de commande démarre un travail en arrière-plan qui s’exécute Get-Process. Un objet de travail est envoyé dans le pipeline et ConvertTo-Csv converti en chaîne CSV. Le paramètre NoTypeInformation supprime l’en-tête d’informations de type de la sortie CSV et est facultatif dans PowerShell v6 et versions ultérieures. La $Header variable contient un en-tête personnalisé qui remplace les valeurs par défaut suivantes : HasMoreData, JobStateInfo, PSBeginTime, PSEndTime et PSJobTypeName. La $J variable contient la chaîne CSV et est utilisée pour supprimer l’en-tête par défaut. L’applet ConvertFrom-Csv de commande convertit la chaîne CSV en un PSCustomObject et utilise le paramètre Header pour appliquer la $Header variable.

Exemple 4 : Convertir des chaînes CSV d’objets de service

Cet exemple montre comment utiliser l’applet ConvertFrom-Csv de commande avec le paramètre UseCulture .

(Get-Culture).TextInfo.ListSeparator
$Services = (Get-Service | ConvertTo-Csv)
ConvertFrom-Csv -InputObject $Services -UseCulture

L’applet Get-Culture de commande utilise les propriétés imbriquées TextInfo et ListSeparator pour obtenir le séparateur de liste par défaut de la culture actuelle. L’applet Get-Service de commande envoie des objets de service vers le pipeline vers ConvertTo-Csv. Convertit ConvertTo-Csv les objets de service en une série de chaînes CSV. Les chaînes CSV sont stockées dans la $Services variable. L’applet ConvertFrom-Csv de commande utilise le paramètre InputObject et convertit les chaînes CSV de la $Services variable. Le paramètre UseCulture utilise le séparateur de liste par défaut de la culture actuelle.

Lorsque le paramètre UseCulture est utilisé, assurez-vous que le séparateur de liste par défaut de la culture actuelle correspond au séparateur utilisé dans les chaînes CSV. Sinon, ConvertFrom-Csv ne peut pas générer d’objets à partir des chaînes CSV.

Paramètres

-Delimiter

Spécifie le délimiteur qui sépare les valeurs de propriété dans les chaînes CSV. La valeur par défaut est une virgule (,). Entrez un caractère, tel qu’un signe deux-points (:). Pour spécifier un point-virgule (;) placez-le entre guillemets simples.

Si vous spécifiez un caractère autre que le délimiteur de chaîne réel dans le fichier, ConvertFrom-Csv ne pouvez pas créer les objets à partir des chaînes CSV et renvoyer les chaînes CSV.

Type:Char
Position:1
Default value:comma (,)
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Header

Spécifie une autre ligne d'en-tête de colonne pour la chaîne importée. L’en-tête de colonne détermine les noms de propriétés des objets créés par ConvertFrom-Csv.

Entrez les en-têtes de colonne sous la forme d’une liste séparée par des caractères. ne placez pas la chaîne d’en-tête entre guillemets. Placez chaque en-tête de colonne entre guillemets simples.

Si vous entrez moins d’en-têtes de colonne qu’il y a des colonnes de données, les colonnes de données restantes sont dis carte ed. Si vous entrez plus d’en-têtes de colonnes qu’il y a de colonnes de données, les en-têtes de colonne supplémentaires sont créés avec des colonnes de données vides.

Lorsque vous utilisez le paramètre Header, omettez la chaîne d’en-tête de colonne des chaînes CSV. Sinon, cette applet de commande crée un objet supplémentaire à partir des éléments de la ligne d’en-tête.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Spécifie les chaînes CSV à convertir en objets. Entrez une variable contenant les chaînes CSV, ou tapez une commande ou une expression qui les obtient. Vous pouvez également diriger les chaînes CSV vers ConvertFrom-Csv.

Type:PSObject[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-UseCulture

Utilise le séparateur de liste pour la culture actuelle comme délimiteur d’élément. Pour rechercher le séparateur de liste pour une culture, utilisez la commande suivante : (Get-Culture).TextInfo.ListSeparator.

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

Entrées

String

Vous pouvez diriger des chaînes CSV vers cette applet de commande.

Sorties

PSObject

Cette applet de commande retourne les objets décrits par les propriétés dans les chaînes CSV.

Notes

Au format CSV, chaque objet est représenté par une liste séparée par des caractères des valeurs de propriété de l’objet. Les valeurs de propriété sont converties en chaînes à l’aide de la ToString() méthode de l’objet. Il n’existe aucun moyen d’exporter les méthodes de l’objet.