ConvertFrom-Csv
Converte le proprietà degli oggetti in formato CSV in versioni CSV degli oggetti originali.
Sintassi
ConvertFrom-Csv
[-InputObject] <psobject[]>
[[-Delimiter] <char>]
[-Header <string[]>]
[<CommonParameters>]
ConvertFrom-Csv
[-InputObject] <psobject[]>
-UseCulture
[-Header <string[]>]
[<CommonParameters>]
Descrizione
Il ConvertFrom-Csv
cmdlet crea oggetti da stringhe di lunghezza variabile CSV generate dal ConvertTo-Csv
cmdlet.
È possibile usare i parametri di questo cmdlet per specificare la riga di intestazione della colonna, che determina i nomi delle proprietà degli oggetti risultanti, per specificare il delimitatore dell'elemento o per indirizzare questo cmdlet per usare il separatore di elenco per le impostazioni cultura correnti come delimitatore.
Gli oggetti creati ConvertFrom-Csv
sono versioni CSV degli oggetti originali. I valori delle proprietà degli oggetti CSV sono versioni in formato stringa dei valori delle proprietà degli oggetti originali. Le versioni CSV degli oggetti non hanno metodi.
È anche possibile usare i Export-Csv
cmdlet e Import-Csv
per convertire gli oggetti in stringhe CSV in un file (e indietro). Questi cmdlet sono uguali ConvertTo-Csv
ai cmdlet e ConvertFrom-Csv
, ad eccezione del fatto che salvano le stringhe CSV in un file.
Esempio
Esempio 1: Convertire i processi nel computer locale in formato CSV
In questo esempio viene illustrato come convertire i processi nel computer locale in formato CSV e quindi ripristinarli in formato oggetto.
$P = Get-Process | ConvertTo-Csv
$P | ConvertFrom-Csv
Il Get-Process
cmdlet invia i processi nella pipeline a ConvertTo-Csv
. Il ConvertTo-Csv
cmdlet converte gli oggetti di processo in una serie di stringhe CSV. Il ConvertFrom-Csv
cmdlet converte le stringhe CSV in versioni CSV degli oggetti del processo originale. Le stringhe CSV vengono salvate nella $P
variabile.
Esempio 2: Convertire un oggetto dati in formato CSV e quindi in formato oggetto CSV
In questo esempio viene illustrato come convertire un oggetto dati in formato CSV e quindi in formato oggetto CSV.
$Date = Get-Date | ConvertTo-Csv -Delimiter ';'
ConvertFrom-Csv -InputObject $Date -Delimiter ';'
Il primo comando usa Get-Date
per inviare la data e l'ora correnti alla pipeline in ConvertTo-Csv
. Il ConvertTo-Csv
cmdlet converte l'oggetto date in una serie di stringhe CSV.
Il parametro Delimiter viene usato per specificare un delimitatore punto e virgola. Le stringhe vengono salvate nella $Date
variabile.
Esempio 3: usare il parametro di intestazione per modificare i nomi delle proprietà
In questo esempio viene illustrato come usare il parametro Header di ConvertFrom-Csv
per modificare i nomi delle proprietà nell'oggetto importato risultante.
$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]
Il Start-Job
cmdlet avvia un processo in background che esegue Get-Process
. Un oggetto processo viene inviato alla pipeline ConvertTo-Csv
e convertito in una stringa CSV. Il parametro NoTypeInformation rimuove l'intestazione delle informazioni sul tipo dall'output CSV ed è facoltativo in PowerShell Core. La $Header
variabile contiene un'intestazione personalizzata che sostituisce i valori predefiniti seguenti: HasMoreData, JobStateInfo, PSBeginTime, PSEndTime ePSJobTypeName. La $J
variabile contiene la stringa CSV e viene usata per rimuovere l'intestazione predefinita. Il ConvertFrom-Csv
cmdlet converte la stringa CSV in un PSCustomObject e usa il parametro Header per applicare la $Header
variabile.
Esempio 4: Convertire stringhe CSV di oggetti di servizio
In questo esempio viene illustrato come usare il cmdlet con il ConvertFrom-Csv
parametro UseCulture .
(Get-Culture).TextInfo.ListSeparator
$Services = (Get-Service | ConvertTo-Csv)
ConvertFrom-Csv -InputObject $Services -UseCulture
Il Get-Culture
cmdlet usa le proprietà annidate TextInfo e ListSeparator per ottenere il separatore di elenco predefinito delle impostazioni cultura corrente. Il Get-Service
cmdlet invia oggetti del servizio nella pipeline a ConvertTo-Csv
. Converte ConvertTo-Csv
gli oggetti del servizio in una serie di stringhe CSV. Le stringhe CSV vengono archiviate nella $Services
variabile. Il ConvertFrom-Csv
cmdlet usa il parametro InputObject e converte le stringhe CSV dalla $Services
variabile. Il parametro UseCulture usa il separatore di elenco predefinito delle impostazioni cultura corrente.
Quando viene usato il parametro UseCulture , assicurarsi che il separatore di elenco predefinito della cultura corrente corrisponda al delimitatore usato nelle stringhe CSV. In caso contrario, ConvertFrom-Csv
non è possibile generare oggetti dalle stringhe CSV.
Parametri
-Delimiter
Specifica il delimitatore che separa i valori delle proprietà nelle stringhe CSV. Il valore predefinito è la virgola (,).
Immettere un carattere, ad esempio due punti (:). Per specificare un punto e virgola (;) racchiuderlo tra virgolette singole.
Se si specifica un carattere diverso dal delimitatore stringa effettivo nel file, ConvertFrom-Csv
non è possibile creare gli oggetti dalle stringhe CSV e restituirà le stringhe CSV.
Type: | Char |
Position: | 1 |
Default value: | comma (,) |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Header
Specifica una riga di intestazioni di colonna per la stringa importata. L'intestazione di colonna determina i nomi delle proprietà degli oggetti creati da ConvertFrom-Csv
.
Immettere le intestazioni di colonna come elenco delimitato da virgole. Non racchiudere la stringa di intestazioni tra virgolette. Racchiudere ogni intestazione di colonna tra virgolette singole.
Se si immettono meno intestazioni di colonna rispetto alle colonne dati, le colonne di dati rimanenti vengono eliminate. Se si immettono più intestazioni di colonna rispetto alle colonne dati, le intestazioni di colonna aggiuntive vengono create con colonne di dati vuote.
Quando si usa il parametro Intestazione , omettere la stringa di intestazione di colonna dalle stringhe CSV. In caso contrario, questo cmdlet crea un oggetto aggiuntivo dagli elementi nella riga di intestazione.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Specifica le stringhe CSV da convertire in oggetti. Immettere una variabile che contiene le stringhe CSV oppure digitare un comando o le espressioni che ottengono le stringhe CSV. È anche possibile inviare le stringhe CSV a ConvertFrom-Csv
.
Type: | PSObject[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-UseCulture
Usa il separatore di elenco per le impostazioni cultura correnti come delimitatore di elementi. Per trovare il separatore di elenco per le impostazioni cultura, usare il comando seguente: (Get-Culture).TextInfo.ListSeparator
.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Input
È possibile inviare stringhe CSV tramite pipe a questo cmdlet.
Output
Questo cmdlet restituisce gli oggetti descritti dalle proprietà nelle stringhe CSV.
Note
Poiché gli oggetti importati sono versioni CSV del tipo di oggetto, non vengono riconosciute e formattate dalle voci di formattazione dei tipi di PowerShell che formattano le versioni non CSV del tipo di oggetto.
In formato CSV ogni oggetto è rappresentato da un elenco di valori delle proprietà dell'oggetto delimitati da virgole. I valori delle proprietà vengono convertiti in stringhe (usando il metodo ToString() dell'oggetto, in modo che siano rappresentati dal nome del valore della proprietà. Questo cmdlet non esporta i metodi dell'oggetto.