ConvertFrom-Csv
Convertit les propriétés d'un objet au format CSV (valeurs séparées par des virgules) 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 crée des objets à partir de chaînes de longueur variable CSV générées par l’applet de ConvertTo-Csv
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és des objets résultants, pour spécifier le délimiteur d’élément ou pour indiquer à cette applet de commande d’utiliser le séparateur de liste pour la culture actuelle comme 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 sous forme de chaîne des valeurs de propriété des objets d'origine. Les versions CSV des objets ne possèdent aucune méthode.
Vous pouvez également utiliser les Export-Csv
applets de commande et Import-Csv
pour convertir des objets en chaînes CSV dans un fichier (et retour). Ces applets de commande sont les mêmes que les ConvertTo-Csv
applets de commande et ConvertFrom-Csv
, sauf qu’elles enregistrent les chaînes CSV dans un fichier.
Exemples
Exemple 1 : Convertir des processus sur l’ordinateur local au format CSV
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 bas du 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 d’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 ConvertTo-Csv
de commande convertit l’objet date en une série de chaînes CSV.
Le paramètre Delimiter est utilisé pour spécifier un délimiteur de 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
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]
L’applet Start-Job
de commande démarre un travail en arrière-plan qui exécute Get-Process
. Un objet de travail est envoyé vers le bas du 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 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 de ConvertFrom-Csv
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 bas du 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 délimiteur 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înes réel dans le fichier, ConvertFrom-Csv
impossible de créer les objets à partir des chaînes CSV et retourne 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 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 colonne qu’il n’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 colonne que 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
Vous pouvez diriger des chaînes CSV vers cette applet de commande.
Sorties
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 mise en forme 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 séparée par des virgules des valeurs de propriété de l'objet. Les valeurs de propriété sont converties en chaînes (à 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 propriété. Cette applet de commande n’exporte pas les méthodes de l’objet .