Partager via


ConvertFrom-Csv

Convertit les propriétés d’objet au format CSV (valeurs séparées par des virgules) en versions CSV des objets d’origine.

Syntaxe

Delimiter (Par défaut)

ConvertFrom-Csv
    [-InputObject] <psobject[]>
    [[-Delimiter] <char>]
    [-Header <string[]>]
    [<CommonParameters>]

UseCulture

ConvertFrom-Csv
    [-InputObject] <psobject[]>
    -UseCulture
    [-Header <string[]>]
    [<CommonParameters>]

Description

L’applet ConvertFrom-Csv de commande crée des objets à partir de chaînes de longueur variable CSV générées par l’applet ConvertTo-Csv de commande.

Vous pouvez utiliser les paramètres de cette applet de commande pour spécifier la ligne d’en-tête de colonne, qui détermine les noms de propriété des objets résultants, pour spécifier le délimiteur d’élément ou pour demander à cette applet de commande d’utiliser le séparateur de liste de la culture actuelle en tant que délimiteur.

Les objets créés ConvertFrom-Csv sont des versions CSV des objets d’origine. Les valeurs de propriété des objets CSV sont des versions de chaîne des valeurs de propriété des objets d’origine. Les versions CSV des objets n’ont pas de méthode.

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

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

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 du pipeline à ConvertTo-Csv. L’applet de commande ConvertTo-Csv convertit l’objet de 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 variable $Date.

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 pour 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]

Le cmdlet Start-Job démarre une tâche d’arrière-plan qui exécute Get-Process. Un objet de travail est envoyé vers le bas du pipeline pour ConvertTo-Csv et 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 Core. La variable $Header contient un en-tête personnalisé qui remplace les valeurs par défaut suivantes : HasMoreData, JobStateInfo, PSBeginTime, PSEndTimeet PSJobTypeName. La variable $J contient la chaîne CSV et est utilisée pour supprimer l’en-tête par défaut. L’applet de commande ConvertFrom-Csv convertit la chaîne CSV en PSCustomObject et utilise le paramètre Header pour appliquer la variable $Header.

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

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

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

L’applet de commande Get-Culture 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 de commande Get-Service envoie des objets de service vers le bas du pipeline à ConvertTo-Csv. Le ConvertTo-Csv convertit les objets de service en une série de chaînes CSV. Les chaînes CSV sont stockées dans la variable $Services. L’applet de commande ConvertFrom-Csv utilise le paramètre InputObject et convertit les chaînes CSV de la variable $Services. 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 délimiteur utilisé dans les chaînes CSV. Sinon, impossible ConvertFrom-Csv de générer des 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 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, vous ConvertFrom-Csv ne pouvez pas créer les objets à partir des chaînes CSV et vous renvoyez les chaînes CSV.

Propriétés du paramètre

Type:Char
Valeur par défaut:comma (,)
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

Delimiter
Position:1
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants: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 forme de liste séparée par des virgules. 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 colonnes qu’il y a de colonnes de données, les colonnes de données restantes sont ignorées. 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.

Propriétés du paramètre

Type:

String[]

Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-InputObject

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

Propriétés du paramètre

Type:

PSObject[]

Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:0
Obligatoire:True
Valeur du pipeline:True
Valeur du pipeline par nom de propriété:True
Valeur des arguments restants:False

-UseCulture

Utilise le séparateur de liste de 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.

Propriétés du paramètre

Type:SwitchParameter
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

UseCulture
Position:Named
Obligatoire:True
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

CommonParameters

Cette applet de commande prend en charge les paramètres courants : -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction et -WarningVariable. Pour plus d’informations, consultez about_CommonParameters.

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

Étant donné que les objets importés sont des versions CSV du type d’objet, ils ne sont pas reconnus et mis en forme par les entrées de formatage de type PowerShell qui mettent en forme les versions non CSV du type d’objet.

Au format CSV, chaque objet est représenté par une liste de valeurs de propriété de l’objet, séparées par des virgules. Les valeurs de propriété sont converties en chaînes de caractères (à l’aide de la méthode ToString() de l’objet), de sorte qu’elles sont représentées par le nom de la valeur de la propriété. Cette applet de commande n’exporte pas les méthodes de l’objet.