Converte le proprietà degli oggetti in formato CSV nelle versioni CSV degli oggetti originali.

Sintassi

ConvertFrom-CSV [[-Delimiter] <char>] [-InputObject] <PSObject[]> [-Header <string[]>] [<CommonParameters>]

ConvertFrom-CSV -UseCulture [-InputObject] <PSObject[]> [-Header <string[]>] [<CommonParameters>]

Descrizione

Il cmdlet ConvertFrom-CSV consente di creare oggetti da stringhe di lunghezza variabile CSV generate dal cmdlet ConvertTo-CSV.

È possibile utilizzare i parametri del cmdlet ConvertFrom-CSV per specificare la riga dell'intestazione di colonna che determina i nomi delle proprietà degli oggetti risultanti, per specificare il delimitatore dell'elemento o per fare in modo che ConvertFrom-CSV utilizzi il separatore di elenco per l'impostazione cultura corrente come delimitatore.

Gli oggetti creati da ConvertFrom-CSV sono versioni CSV degli oggetti originali. I valori delle proprietà degli oggetti CSV sono versioni di tipo stringa dei valori delle proprietà degli oggetti originali. Le versioni CSV degli oggetti non dispongono di alcun metodo.

È inoltre possibile utilizzare i cmdlet Export-CSV e Import-CSV per convertire gli oggetti in stringhe CSV in un file (e viceversa). Questi cmdlet corrispondono ai cmdlet ConvertTo-CSV e ConvertFrom-CSV, a eccezione del fatto che consentono di salvare le stringhe CSV in un file.

Parametri

-Delimiter <char>

Specifica il delimitatore che separa i valori delle proprietà nelle stringhe CSV. Il valore predefinito è la virgola (,). Immettere un carattere, ad esempio i due punti (:). Per specificare il punto e virgola (;), è necessario racchiuderlo tra virgolette doppie.

Se si specifica un carattere diverso dal delimitatore utilizzato nelle stringhe CSV, non è possibile creare oggetti dalle stringhe CSV mediante ConvertFrom-CSV. Vengono invece restituite le stringhe.

Obbligatorio?

false

Posizione?

2

Valore predefinito

','

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-Header <string[]>

Specifica una riga dell'intestazione di colonna alternativa per la stringa importata. L'intestazione di colonna determina i nomi delle proprietà dell'oggetto creato da ConvertFrom-CSV.

Immettere un elenco di intestazioni di colonna separate da virgole. Racchiudere ogni elemento tra virgolette (singole o doppie). Non racchiudere la stringa dell'intestazione tra virgolette. Se si immette un numero di intestazioni di colonna inferiore a quello delle colonne, le colonne rimanenti non avranno alcuna intestazione. Se si immette un numero di intestazioni superiore a quello delle colonne, le intestazioni in più verranno ignorate.

Quando si utilizza il parametro Header, omettere la stringa dell'intestazione di colonna dalle stringhe CSV. In caso contrario, ConvertFrom-CSV crea un oggetto in più dagli elementi nella riga dell'intestazione.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-InputObject <PSObject[]>

Specifica le stringhe CSV da convertire in oggetti. Immettere una variabile che contiene le stringhe CSV oppure digitare un comando o un'espressione che consente di ottenere le stringhe CSV. È inoltre possibile reindirizzare le stringhe CSV a ConvertFrom-CSV.

Obbligatorio?

true

Posizione?

1

Valore predefinito

Accettare input da pipeline?

true (ByValue, ByPropertyName)

Accettare caratteri jolly?

false

-UseCulture

Utilizzare il separatore di elenco per l'impostazione cultura corrente come delimitatore di stringa. Il valore predefinito è la virgola (,).

Per trovare il separatore di elenco di un'impostazione cultura, utilizzare il comando (Get-Culture).TextInfo.ListSeparator. Se si specifica un carattere diverso dal delimitatore utilizzato nelle stringhe CSV, non è possibile creare oggetti dalle stringhe CSV mediante ConvertFrom-CSV. Vengono invece restituite le stringhe.

Obbligatorio?

true

Posizione?

named

Valore predefinito

Comma

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input

System.String

È possibile reindirizzare le stringhe CSV a ConvertFrom-CSV.

Output

System.Management.Automation.PSObject

ConvertFrom-CSV restituisce gli oggetti descritti dalle proprietà nelle stringhe CSV.

Note

Poiché gli oggetti importati sono versioni CSV del tipo di oggetto, non vengono riconosciuti e formattati dalle voci di formattazione dei tipi di Windows PowerShell mediante cui vengono formattate le versioni non CSV del tipo di oggetto.

Nel formato CSV, ogni oggetto viene rappresentato da un elenco di valori delle proprietà dell'oggetto separati da virgole. I valori delle proprietà vengono convertiti in stringhe (tramite il metodo ToString() dell'oggetto), pertanto sono in genere rappresentati dal nome del valore della proprietà. ConvertTo-CSV non esporta i metodi dell'oggetto.

Esempio 1

C:\PS>$p = get-process | convertto-csv

C:\PS> $p | convertfrom-csv

Descrizione
-----------
Con questi comandi i processi nel computer locale vengono convertiti in formato CSV, quindi ripristinati al formato dell'oggetto.

Nel primo comando viene utilizzato il cmdlet Get-Process per ottenere i processi disponibili nel computer locale. Un operatore pipeline (|) li invia al cmdlet ConvertTo-CSV che converte l'oggetto processo nel formato CSV. Le stringhe CSV vengono salvate nella variabile $p.

Nel secondo comando viene utilizzato un operatore pipeline per inviare le stringhe CSV nella variabile $p al cmdlet ConvertFrom-CSV. Il cmdlet consente di convertire le stringhe CSV nelle versioni CSV degli oggetti processo originali.






Esempio 2

C:\PS>$date = get-date | convertto-csv -delimiter ";"

C:\PS> convertfrom-csv -inputobject $date -delimiter ";"

Descrizione
-----------
Questi comandi convertono un oggetto dati in formato CSV, quindi in formato oggetto CSV.

Nel primo comando viene utilizzato il cmdlet Get-Date per ottenere la data e l'ora correnti. Un oggetto pipeline (|) invia la data ai cmdlet ConvertTo-CSV che convertono l'oggetto data in una serie di stringhe CSV. Viene utilizzato il parametro Delimiter per specificare il punto e virgola come delimitatore. Le stringhe vengono salvate nella variabile $date.

Nel secondo comando viene utilizzato il cmdlet ConvertFrom-CSV per convertire nuovamente le stringhe CSV nella variabile $date nel formato oggetto. Vengono utilizzati il parametro InputObject per specificare le stringhe CSV e il parametro Delimiter per specificare il punto e virgola come delimitatore.






Esempio 3

C:\PS>$j = start-job -scriptblock { get-process } | convertto-csv

C:\PS> $header = "MoreData","StatusMessage","Location","Command","State","Finished","InstanceId","SessionId","Name","ChildJobs","Output","Error","Progress","Verbose","Debug","Warning","StateChanged"

# Delete header from $j
C:\PS> $j = $j[0], $j[2..($j.count - 1)]

$j | convertfrom-csv -header $header

MoreData      : True
StatusMessage : 
Location      : localhost
Command       : get-process
State         : Running
Finished      : System.Threading.ManualResetEvent
InstanceId    : 6fcb6578-7f42-4d93-9f23-9937f6aac1a2
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  :

Descrizione
-----------
In questo esempio viene illustrato come utilizzare il parametro Header di ConvertFrom-Csv per modificare i nomi delle proprietà nell'oggetto importato risultante.

Nel primo comando viene utilizzato il cmdlet Start-Job per avviare un processo in background che esegue un comando Get-Process nel computer locale. Un operatore pipeline (|) invia l'oggetto processo risultante al cmdlet ConvertTo-CSV che converte l'oggetto processo nel formato CSV. Un operatore di assegnazione (=) consente di salvare il CSV risultante nella variabile $j.

Nel secondo comando un'intestazione viene salvata nella variabile $header. A differenza dell'intestazione predefinita, questa intestazione utilizza "MoreData" anziché "HasMoreData" e "State" anziché "JobStateInfo".

Con il terzo comando l'intestazione originale (seconda riga) viene eliminata dalle stringhe CSV e restituita alla variabile $j.

Nel quarto comando viene utilizzato il cmdlet ConvertFrom-CSV per convertire le stringhe CSV in una versione CSV dell'oggetto processo. Viene utilizzato un operatore pipeline per inviare il contenuto di $j a ConvertFrom-CSV. L'oggetto risultante dispone delle proprietà "MoreData" e "State", come specificato dall'intestazione.






Esempio 4

C:\PS>(get-culture).textinfo.listseparator

C:\PS> ConvertFrom-Csv -inputobject $services -UseCulture

Descrizione
-----------
Viene utilizzato il cmdlet ConvertFrom-CSV per convertire le stringhe CSV degli oggetti servizio convertiti dal cmdlet ConvertTo-CSV. Viene utilizzato il parametro UseCulture per indicare a ConvertFrom-CSV di utilizzare il delimitatore (separatore di elenco) delle impostazioni cultura correnti.

Quando si utilizza il parametro UseCulture, assicurarsi che il separatore di elenco delle impostazioni cultura correnti corrisponda al delimitatore utilizzato nelle stringhe CSV. In caso contrario, ConvertFrom-CSV non può generare oggetti dalle stringhe CSV.

In questo esempio, è stato utilizzato un comando Get-Culture per verificare il separatore di elenco prima dell'utilizzo del comando ConvertFrom-CSV.






Vedere anche




Argomenti della Guida