Import-CSV
Convertit les propriétés d'objet d'un fichier CSV (fichier de valeurs séparées par des virgules) en versions CSV des objets d'origine.
Syntaxe
Import-CSV [[-Delimiter] <char>] [-Path] <string[]> [-Header <string[]>] [<CommonParameters>]
Import-CSV -UseCulture [-Path] <string[]> [-Header <string[]>] [<CommonParameters>]
Description
L'applet de commande Import-CSV crée des objets à partir de fichiers CSV de longueur variable générés par l'applet de commande Export-CSV.
Vous pouvez utiliser les paramètres de l'applet de commande Import-CSV pour spécifier la ligne d'en-tête de colonne qui détermine les noms des propriétés des objets obtenus, pour spécifier le délimiteur d'éléments ou pour demander à Import-CSV d'utiliser le séparateur de liste de la culture actuelle en tant que délimiteur d'éléments.
Les objets créés par Import-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éthodes.
Vous pouvez également utiliser les applets de commande ConvertTo-CSV et ConvertFrom-CSV pour convertir des objets en chaînes CSV (et inversement). Ces applets de commande sont identiques aux applets de commande Export-CSV et Import-CSV, à ceci près qu'elles n'enregistrent pas les chaînes CSV dans un fichier.
Paramètres
-Delimiter <char>
Spécifie le délimiteur qui sépare les valeurs de propriété dans le fichier 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.
Si vous spécifiez un caractère autre que le délimiteur de chaîne du fichier, Import-CSV ne peut pas créer d'objets à partir des chaînes CSV. Les chaînes sont retournées à la place.
Obligatoire ? |
false |
Position ? |
2 |
Valeur par défaut |
, |
Accepter l'entrée de pipeline ? |
false |
Accepter les caractères génériques ? |
false |
-Header <string[]>
Spécifie une autre ligne d'en-tête de colonne pour le fichier importé. L'en-tête de colonne détermine le nom des propriétés de l'objet créé par Import-CSV.
Entrez une liste d'en-têtes de colonnes séparés par des virgules. Placez chaque élément entre guillemets (simples ou doubles). Ne placez pas la chaîne d'en-tête entre guillemets. Si vous entrez moins d'en-têtes de colonnes qu'il n'existe de colonnes, les colonnes restantes n'auront pas d'en-tête. Si vous entrez plus d'en-têtes qu'il n'existe de colonnes, les en-têtes supplémentaires sont ignorés.
Lorsque vous utilisez le paramètre Header, supprimez la ligne d'en-tête d'origine du fichier CSV. Sinon, Import-CSV crée un objet supplémentaire à partir des éléments de la ligne d'en-tête.
Obligatoire ? |
false |
Position ? |
named |
Valeur par défaut |
|
Accepter l'entrée de pipeline ? |
false |
Accepter les caractères génériques ? |
false |
-Path <string[]>
Spécifie le chemin d'accès du fichier CSV à importer. Vous pouvez également diriger un chemin d'accès vers Import-CSV.
Obligatoire ? |
true |
Position ? |
1 |
Valeur par défaut |
aucun |
Accepter l'entrée de pipeline ? |
true (ByValue, ByPropertyName) |
Accepter les caractères génériques ? |
false |
-UseCulture
Utilisez le séparateur de liste de la culture actuelle en tant que délimiteur d'éléments. La valeur par défaut est une virgule (,).
Pour rechercher le séparateur de liste d'une culture, utilisez la commande (Get-Culture).TextInfo.ListSeparator. Si vous spécifiez un caractère autre que le délimiteur utilisé dans les chaînes CSV, ConvertFrom-CSV ne peut pas créer d'objets à partir des chaînes CSV. Les chaînes sont retournées à la place.
Obligatoire ? |
true |
Position ? |
named |
Valeur par défaut |
Comma |
Accepter l'entrée de pipeline ? |
false |
Accepter les caractères génériques ? |
false |
<CommonParameters>
Cette applet de commande prend en charge les paramètres courants : -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer et -OutVariable. Pour plus d'informations, consultez about_Commonparameters.
Entrées et sorties
Le type d'entrée est le type des objets que vous pouvez diriger vers l'applet de commande. Le type de retour est le type des objets que l'applet de commande retourne.
Entrées |
System.String Vous pouvez diriger une chaîne qui contient un chemin d'accès vers Import-CSV. |
Sorties |
Objet. Import-CSV retourne les objets décrits par le contenu dans le fichier CSV. |
Remarques
É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 Windows PowerShell qui mettent en forme les versions non-CSV du type d'objet.
Dans le fichier 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 (par l'intermédiaire de la méthode ToString() de l'objet). Elles sont donc généralement représentées par le nom de la valeur de propriété. Export-CSV n'exporte pas les méthodes de l'objet.
Exemple 1
C:\PS>get-process | export-csv processes.csv
C:\PS> $p = import-CSV processes.csv
C:\PS> $p | get-member
TypeName: CSV:System.Diagnostics.Process
Name MemberType Definition
---- ---------- ----------
Equals Method System.Boolean Equals(Object obj)
GetHashCode Method System.Int32 GetHashCode()
GetType Method System.Type GetType()
ToString Method System.String ToString()
BasePriority NoteProperty System.String BasePriority=8
Company NoteProperty System.String Company=Microsoft Corporation
...
C:\PS> $p | out-gridview
Description
-----------
Cet exemple montre comment exporter puis importer un fichier CSV d'objets Microsoft .NET Framework.
La première commande utilise l'applet de commande Get-Process pour obtenir le processus de l'ordinateur local. Elle utilise un opérateur de pipeline (|) pour envoyer les objets processus à l'applet de commande Export-CSV, qui exporte ces objets vers le fichier Processes.csv du répertoire actif.
La deuxième commande utilise l'applet de commande Import-CSV pour importer les processus dans le fichier Import-CSV. Elle enregistre ensuite l'objet processus obtenu dans la variable $p.
La troisième commande utilise un opérateur de pipeline pour diriger les objets importés vers les applets de commande Get-Member. Le résultat indique qu'il s'agit d'objets CSV:System.Diagnostic.Process et non pas des objets System.Diagnostic.Process retournés par Get-Process.
En outre, étant donné qu'il n'y a pas de type d'entrée dans les fichiers de mise en forme de la version CSV des objets processus, ces objets ne sont pas mis en forme de la même façon que les objets processus standard.
Pour afficher les objets, utilisez les applets de commande de mise en forme, telles que Format-Table et Format-List, ou dirigez les objets vers Out-GridView.
Exemple 2
C:\PS>get-process | export-csv processes.csv -Delimiter :
C:\PS> $p = import-csv processes.csv -Delimiter :
Description
-----------
Cet exemple montre comment utiliser le paramètre Delimiter de Import-CSV. Les processus sont ainsi exportés vers un fichier qui utilise les deux-points (:) comme délimiteur.
Lors de l'importation, le fichier Import-CSV utilise le paramètre Delimiter pour indiquer le délimiteur utilisé dans le fichier.
Exemple 3
C:\PS>$p = import-csv processes.csv -UseCulture
C:\PS> (get-culture).textinfo.listseparator
,
Description
-----------
Cet exemple montre comment utiliser le paramètre UseCulture de Import-CSV.
La première commande importe les objets du fichier Processes.csv dans la variable $p. Elle utilise le paramètre UseCulture pour demander à Import-CSV d'utiliser le séparateur de liste défini pour la culture actuelle.
La deuxième commande affiche le séparateur de liste de la culture actuelle. Elle utilise l'applet de commande Get-Culture pour obtenir la culture actuelle. Elle utilise la méthode de point (.) pour obtenir la propriété TextInfo de la culture actuelle et la propriété ListSeparator de l'objet dans TextInfo. Dans cet exemple, la commande retourne une virgule.
Exemple 4
C:\PS>start-job -scriptblock { get-process } | export-csv jobs.csv
C:\PS> $header = "MoreData","StatusMessage","Location","Command","State","Finished","InstanceId","SessionId","Name","ChildJobs","Output","Error","Progress","Verbose","Debug","Warning","StateChanged"
# Delete header from file
C:\PS> $a = (get-content jobs.csv)
C:\PS> $a = $a[0], $a[2..($a.count - 1)]
C:\PS> $a > jobs.csv
C:\PS> $j = import-csv jobs.csv -header $header
C:\PS> $j
MoreData : True
StatusMessage :
Location : localhost
Command : get-process
State : Running
Finished : System.Threading.ManualResetEvent
InstanceId : 135bdd25-40d6-4a20-bd68-05282a59abd6
SessionId : 1
Name : Job1
ChildJobs : System.Collections.Generic.List`1[System.Management.Automation.Job]
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.String]
Debug : System.Management.Automation.PSDataCollection`1[System.String]
Warning : System.Management.Automation.PSDataCollection`1[System.String]
StateChanged :
Description
-----------
Cet exemple montre comment utiliser le paramètre Header de l'applet de commande Import-CSV pour modifier le nom des propriétés de l'objet importé obtenu.
La première commande utilise l'applet de commande Start-Job pour démarrer une tâche en arrière-plan qui exécute une commande Get-Process sur l'ordinateur local. Un opérateur de pipeline (|) envoie l'objet tâche obtenu à l'applet de commande Export-CSV, qui le convertit au format CSV. Un opérateur d'affectation (=) enregistre le CSV résultant dans le fichier Jobs.csv.
La deuxième commande enregistre un en-tête dans la variable $header. Contrairement à l'en-tête par défaut, cet en-tête utilise « MoreData » au lieu de « HasMoreData » et « State » au lieu de « JobStateInfo ».
Les trois commandes suivantes suppriment l'en-tête d'origine (la deuxième ligne) du fichier Jobs.csv.
La sixième commande utilise l'applet de commande Import-CSV pour importer le fichier Jobs.csv et convertir les chaînes CSV en une version CSV de l'objet tâche. Elle utilise le paramètre Header pour envoyer l'autre en-tête. Les résultats sont stockés dans la variable $j.
La septième commande affiche l'objet dans la variable $j. L'objet qui en résulte possède les propriétés « MoreData » et « State », comme indiqué dans la sortie de commande.
Exemple 5
C:\PS>".\processes.csv" | import-csv
Description
-----------
Cette commande importe les objets à partir du fichier Processes.csv.