Condividi tramite


ConvertTo-Csv

Converte gli oggetti .NET in una serie di stringhe con valori delimitati da caratteri (CSV).

Sintassi

Delimiter (Impostazione predefinita)

ConvertTo-Csv
    [-InputObject] <psobject>
    [[-Delimiter] <char>]
    [-NoTypeInformation]
    [<CommonParameters>]

UseCulture

ConvertTo-Csv
    [-InputObject] <psobject>
    [-UseCulture]
    [-NoTypeInformation]
    [<CommonParameters>]

Descrizione

Il cmdlet ConvertTo-Csv restituisce una serie di stringhe con valori delimitati da caratteri (CSV) che rappresentano gli oggetti inviati. È quindi possibile usare il cmdlet ConvertFrom-Csv per ricreare oggetti dalle stringhe CSV. Gli oggetti convertiti da CSV sono valori stringa degli oggetti originali che contengono valori di proprietà e nessun metodo.

È possibile usare il cmdlet Export-Csv per convertire gli oggetti in stringhe CSV. Export-Csv è simile a ConvertTo-Csv, ad eccezione del fatto che salva le stringhe CSV in un file.

Il cmdlet ConvertTo-Csv include parametri per specificare un delimitatore diverso da una virgola o usare le impostazioni cultura correnti come delimitatore.

Esempio

Esempio 1: Convertire un oggetto in csv

In questo esempio viene convertito un oggetto process in una stringa CSV.

Get-Process -Name 'PowerShell' | ConvertTo-Csv -NoTypeInformation
"Name","SI","Handles","VM","WS","PM","NPM","Path","Company","CPU","FileVersion", ...
"powershell","11","691","2204036739072","175943680","132665344","33312", ...

Il cmdlet Get-Process ottiene l'oggetto process e usa il parametro Name per specificare il processo di PowerShell. L'oggetto processo viene inviato alla pipeline al cmdlet ConvertTo-Csv. Il cmdlet ConvertTo-Csv converte l'oggetto in stringhe CSV. Il parametro NoTypeInformation rimuove l'intestazione delle informazioni #TYPE dall'output CSV.

Esempio 2: Convertire un oggetto DateTime in CSV

In questo esempio viene convertito un oggetto DateTime in una stringa CSV.

$Date = Get-Date
ConvertTo-Csv -InputObject $Date -Delimiter ';' -NoTypeInformation
"DisplayHint";"DateTime";"Date";"Day";"DayOfWeek";"DayOfYear";"Hour";"Kind";"Millisecond";"Minute";"Month";"Second";"Ticks";"TimeOfDay";"Year"
"DateTime";"Friday, January 4, 2019 14:40:51";"1/4/2019 00:00:00";"4";"Friday";"4";"14";"Local";"711";"40";"1";"51";"636822096517114991";"14:40:51.7114991";"2019"

Il cmdlet Get-Date ottiene l'oggetto DateTime e lo salva nella variabile $Date. Il cmdlet ConvertTo-Csv converte l'oggetto DateTime in stringhe. Il parametro InputObject usa l'oggetto DateTime archiviato nella variabile $Date. Il parametro Delimiter specifica un punto e virgola per separare i valori stringa. Il parametro NoTypeInformation rimuove l'intestazione delle informazioni #TYPE dall'output CSV.

Esempio 3: Convertire il registro eventi di PowerShell in CSV

Questo esempio converte il registro eventi di Windows per PowerShell in una serie di stringhe CSV.

(Get-Culture).TextInfo.ListSeparator
Get-WinEvent -LogName 'Windows PowerShell' | ConvertTo-Csv -UseCulture -NoTypeInformation
,
"Message","Id","Version","Qualifiers","Level","Task","Opcode","Keywords","RecordId", ...
"Error Message = System error","403",,"0","4","4",,"36028797018963968","46891","PowerShell", ...

Il cmdlet Get-Culture usa le proprietà annidate TextInfo e ListSeparator e visualizza il separatore di elenco predefinito delle impostazioni cultura correnti. Il cmdlet Get-WinEvent ottiene gli oggetti del registro eventi e usa il parametro LogName per specificare il nome del file di log. Gli oggetti del registro eventi vengono inviati alla pipeline al cmdlet ConvertTo-Csv. Il cmdlet ConvertTo-Csv converte gli oggetti del registro eventi in una serie di stringhe CSV. Il parametro UseCulture usa il separatore di elenco predefinito delle impostazioni cultura correnti come delimitatore. Il parametro NoTypeInformation rimuove l'intestazione delle informazioni #TYPE dall'output CSV.

Parametri

-Delimiter

Specifica il delimitatore per separare i valori delle proprietà nelle stringhe CSV. Il valore predefinito è una virgola (,). Immettere un carattere, ad esempio due punti (:). Per specificare un punto e virgola (;) racchiudilo tra virgolette singole.

Proprietà dei parametri

Tipo:Char
Valore predefinito:comma (,)
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

Delimiter
Posizione:1
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-InputObject

Specifica gli oggetti convertiti in stringhe CSV. Immettere una variabile contenente gli oggetti o digitare un comando o un'espressione che ottiene gli oggetti . È anche possibile inviare oggetti tramite pipe a ConvertTo-Csv.

Proprietà dei parametri

Tipo:PSObject
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:0
Obbligatorio:True
Valore dalla pipeline:True
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti:False

-NoTypeInformation

Rimuove l'intestazione delle informazioni #TYPE dall'output. Questo parametro è diventato l'impostazione predefinita in PowerShell 6.0 ed è incluso per la compatibilità con le versioni precedenti.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:False
Supporta i caratteri jolly:False
DontShow:False
Alias:NTI

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-UseCulture

Usa il separatore di elenco per la cultura attuale come delimitatore degli elementi. Per trovare il separatore di elenco per una cultura, usare il comando seguente: (Get-Culture).TextInfo.ListSeparator.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:False
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

UseCulture
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

CommonParameters

Questo cmdlet supporta i parametri comuni: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Per altre informazioni, vedi about_CommonParameters.

Input

PSObject

È possibile inviare tramite pipe qualsiasi oggetto con un adattatore ETS (Extended Type System) a questo cmdlet.

Output

String

Questo cmdlet restituisce una o più stringhe che rappresentano ogni oggetto convertito.

Note

In formato CSV, ogni oggetto è rappresentato da un elenco delimitato da caratteri del relativo valore della proprietà. I valori della proprietà vengono convertiti in stringhe usando il metodo toString() dell'oggetto. Le stringhe sono rappresentate dal nome del valore della proprietà. ConvertTo-Csv non esporta i metodi dell'oggetto.

Le stringhe CSV vengono restituite come segue:

  • Per impostazione predefinita, la prima stringa contiene l'intestazione delle informazioni #TYPE seguita dal nome completo del tipo di oggetto. Ad esempio, #TYPE System.Diagnostics.Process.
  • Se NoTypeInformation viene usata la prima stringa include le intestazioni di colonna. Le intestazioni contengono i nomi delle proprietà del primo oggetto come elenco delimitato da virgole.
  • Le stringhe rimanenti contengono elenchi delimitati da virgole dei valori delle proprietà di ogni oggetto.

Quando si inviano più oggetti a ConvertTo-Csv, ConvertTo-Csv ordina le stringhe in base alle proprietà del primo oggetto inviato. Se gli oggetti rimanenti non dispongono di una delle proprietà specificate, il valore della proprietà di tale oggetto è Null, come rappresentato da due virgole consecutive. Se gli oggetti rimanenti hanno proprietà aggiuntive, tali valori di proprietà vengono ignorati.