Konvertiert Objekteigenschaften im CSV-Format (Comma-Separated Value) in CSV-Versionen der ursprünglichen Objekte.
Syntax
ConvertFrom-CSV [[-Delimiter] <char>] [-InputObject] <PSObject[]> [-Header <string[]>] [<CommonParameters>] ConvertFrom-CSV -UseCulture [-InputObject] <PSObject[]> [-Header <string[]>] [<CommonParameters>]
Beschreibung
Das Cmdlet "ConvertFrom-CSV" erstellt Objekte aus CSV-Zeichenfolgen , die vom Cmdlet "ConvertTo-CSV" generiert werden.
Sie können mit den Parametern des Cmdlet "ConvertFrom-CSV" die Spaltenüberschriftenzeile angeben, die die Eigenschaftennamen der resultierenden Objekte bestimmt, das Elementtrennzeichen angeben oder festlegen, dass ConvertFrom-CSV das Listentrennzeichen für die aktuelle Kultur als Trennzeichen verwendet.
Die von ConvertFrom-CSV erstellten Objekte sind CSV-Versionen der ursprünglichen Objekte. Die Eigenschaftenwerte der CSV-Objekte sind Zeichenfolgenversionen der Eigenschaftenwerte der ursprünglichen Objekte. Die CSV-Versionen der Objekte verfügen über keine Methoden.
Sie können auch die Cmdlets "Export-CSV" und "Import-CSV" verwenden, um Objekte in CSV-Zeichenfolgen in einer Datei zu konvertieren (bzw. um CSV-Zeichenfolgen in Objekte zu konvertieren). Diese Cmdlets entsprechen den Cmdlets "ConvertTo-CSV" und "ConvertFrom-CSV", mit dem Unterschied, dass sie die CSV-Zeichenfolgen in einer Datei speichern.
Parameter
-Delimiter <char>
Gibt das Trennzeichen zum Trennen der Eigenschaftenwerte in den CSV-Zeichenfolgen an. Der Standardwert ist ein Komma (,). Geben Sie ein Zeichen ein, z. B. einen Doppelpunkt (:). Um ein Semikolon (;) anzugeben, schließen Sie es in Anführungszeichen ein.
Wenn Sie ein anderes Zeichen als das in den CSV-Zeichenfolgen verwendete Trennzeichen angeben, können mit ConvertFrom-CSV keine Objekte aus den CSV-Zeichenfolgen erstellt werden. Stattdessen werden die Zeichenfolgen zurückgegeben.
Erforderlich? |
false |
Position? |
2 |
Standardwert |
',' |
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-Header <string[]>
Gibt eine alternative Spaltenüberschriftenzeile für die importierte Zeichenfolge an. Die Spaltenüberschrift bestimmt die Namen der Eigenschaften des Objekts, das von ConvertFrom-CSV erstellt wird.
Geben Sie eine durch Trennzeichen getrennte Liste der Spaltenüberschriften ein. Schließen Sie jedes Element in (einzelne oder doppelte) Anführungszeichen ein. Schließen Sie die Headerzeichenfolge nicht in Anführungszeichen ein. Wenn Sie weniger Spaltenüberschriften eingeben als Spalten vorhanden sind, verfügen die verbleibenden Spalten über keine Überschrift. Wenn Sie mehr Überschriften eingeben als Spalten vorhanden sind, werden die zusätzlichen Überschriften ignoriert.
Wenn Sie den Header-Parameter verwenden, lassen Sie die Zeichenfolge für die Spaltenüberschrift aus den CSV-Zeichenfolgen weg. Andernfalls erstellt ConvertFrom-CSV ein zusätzliches Objekt aus den Elementen in der Überschriftenzeile.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-InputObject <PSObject[]>
Gibt die CSV-Zeichenfolgen an, die in Objekte konvertiert werden sollen. Geben Sie eine Variable ein, die die CSV-Zeichenfolgen enthält, oder geben Sie einen Befehl oder einen Ausdruck ein, mit dem die CSV-Zeichenfolgen abgerufen werden. Sie können die CSV-Zeichenfolgen auch über die Pipeline an ConvertFrom-CSV übergeben.
Erforderlich? |
true |
Position? |
1 |
Standardwert |
|
Pipelineeingaben akzeptieren? |
true (ByValue, ByPropertyName) |
Platzhalterzeichen akzeptieren? |
false |
-UseCulture
Verwendet das Listentrennzeichen für die aktuelle Kultur als Zeichenfolgentrennzeichen. Der Standardwert ist ein Komma (,).
Um das Listentrennzeichen für eine Kultur zu suchen, verwenden Sie den folgenden Befehl: (Get-Culture).TextInfo.ListSeparator. Wenn Sie ein anderes Zeichen als das in den CSV-Zeichenfolgen verwendete Trennzeichen angeben, können mit ConvertFrom-CSV keine Objekte aus den CSV-Zeichenfolgen erstellt werden. Stattdessen werden die Zeichenfolgen zurückgegeben.
Erforderlich? |
true |
Position? |
named |
Standardwert |
Comma |
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
<CommonParameters>
Dieses Cmdlet unterstützt die folgenden allgemeinen Parameter: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer und -OutVariable. Weitere Informationen finden Sie unter about_Commonparameters.
Eingaben und Ausgaben
Der Eingabetyp ist der Typ der Objekte, die über die Pipeline an das Cmdlet übergeben werden können. Der Rückgabetyp ist der Typ der Objekte, die das Cmdlet zurückgibt.
Eingaben |
System.String Sie können CSV-Zeichenfolgen über die Pipeline an ConvertFrom-CSV übergeben. |
Ausgaben |
System.Management.Automation.PSObject ConvertFrom-CSV gibt die Objekte zurück, die durch die Eigenschaften in den CSV-Zeichenfolgen beschriebenen werden. |
Hinweise
Da die importierten Objekte CSV-Versionen des Objekttyps sind, werden sie von den Windows PowerShell-Typformatierungseinträgen, die keine CSV-Versionen des Objekttyps formatieren, nicht erkannt und formatiert.
Im CSV-Format wird jedes Objekt durch eine durch Trennzeichen getrennte Liste der Eigenschaftenwerte des Objekts dargestellt. Die Eigenschaftenwerte werden in Zeichenfolgen konvertiert (mit der ToString()-Methode des Objekts). Deshalb werden sie im Allgemeinen durch den Namen des Eigenschaftenwerts dargestellt. ConvertTo-CSV exportiert nicht die Methoden des Objekts.
Beispiel 1
C:\PS>$p = get-process | convertto-csv C:\PS> $p | convertfrom-csv Beschreibung ----------- Mit diesen Befehlen werden die Prozesse auf dem lokalen Computer in das CSV-Format konvertiert und dann im Objektformat wiederhergestellt. Im ersten Befehl werden die Prozesse auf dem Computer mit dem Cmdlet "Get-Process" abgerufen. Sie werden mit dem Pipelineoperator (|) an das Cmdlet "ConvertTo-CSV" gesendet, das das Prozessobjekt in das CSV-Format konvertiert. Die CSV-Zeichenfolgen werden in der Variablen "$p" gespeichert. Im zweiten Befehl werden die CSV-Zeichenfolgen in der Variablen "$p" mit dem Pipelineoperator an das Cmdlet "ConvertFrom-CSV" gesendet. Das Cmdlet konvertiert die CSV-Zeichenfolgen in CSV-Versionen der ursprünglichen Prozessobjekte.
Beispiel 2
C:\PS>$date = get-date | convertto-csv -delimiter ";" C:\PS> convertfrom-csv -inputobject $date -delimiter ";" Beschreibung ----------- Mit diesen Befehlen wird ein Datenobjekt in das CSV-Format und dann in das CSV-Objektformat konvertiert. Im ersten Befehl werden das aktuelle Datum und die aktuelle Uhrzeit mit dem Cmdlet "Get-Date" abgerufen. Ein Pipelineobjekt (|) sendet das Datum an das Cmdlet "ConvertTo-CSV", das das Datumsobjekt in eine Reihe von CSV-Zeichenfolgen konvertiert. Der Befehl gibt mithilfe des Delimiter-Parameters ein Semikolon als Trennzeichen an. Die Zeichenfolgen werden in der Variablen "$date" gespeichert. Im zweiten Befehl werden die CSV-Zeichenfolgen in der Variablen "$date" mit dem Cmdlet "ConvertFrom-CSV" wieder in das Objektformat konvertiert. Der Befehl gibt die CSV-Zeichenfolgen mit dem InputObject-Parameter und das Semikolontrennzeichen mit dem Delimiter-Parameter an.
Beispiel 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 : Beschreibung ----------- In diesem Beispiel wird gezeigt, wie die Namen von Eigenschaften im resultierenden importierten Objekt mit dem Header-Parameter von ConvertFrom-Csv geändert werden. Im ersten Befehl wird ein Hintergrundauftrag, der auf dem lokalen Computer den Befehl "Get-Process" ausführt, mit dem Cmdlet "Start-Job" gestartet. Das resultierende Auftragsobjekt wird mit einem Pipelineoperator (|) an das Cmdlet "ConvertTo-CSV" gesendet, das das Auftragsobjekt in das CSV-Format konvertiert. Die resultierende CSV-Zeichenfolge wird mit dem Zuweisungsoperator (=) in der Variablen "$j" gespeichert. Mit dem zweiten Befehl wird eine Überschrift in der Variablen "$header" gespeichert. Im Gegensatz zur Standardüberschrift wird für diese Überschrift "MoreData" statt "HasMoreData" und "Status" statt "JobStateInfo" verwendet. Im dritten Befehl wird die ursprüngliche Überschrift (die zweite Zeile) aus den CSV-Zeichenfolgen gelöscht und an die Variable "$j" zurückgegeben. Im vierten Befehl werden die CSV-Zeichenfolgen mit dem Cmdlet "ConvertFrom-CSV" in eine CSV-Version des Auftragsobjekts konvertiert. Der Befehl sendet den Inhalt von $j mithilfe des Pipelineoperators an ConvertFrom-CSV. Das resultierende Objekt verfügt über die MoreData-Eigenschaft und die State-Eigenschaft, wie von der Überschrift angegeben.
Beispiel 4
C:\PS>(get-culture).textinfo.listseparator C:\PS> ConvertFrom-Csv -inputobject $services -UseCulture Beschreibung ----------- Der Befehl konvertiert CSV-Zeichenfolgen von Dienstobjekten, die von dem Cmdlet "ConvertTo-CSV" konvertiert wurden, mit dem Cmdlet "ConvertFrom-CSV". Im Befehl wird mit dem UseCulture-Parameter festgelegt, dass ConvertFrom-CSV das Trennzeichen (Listentrennzeichen) der aktuellen Kultur verwendet. Stellen Sie bei Verwendung des UseCulture-Parameters sicher, dass das Listentrennzeichen der aktuellen Kultur mit dem in den CSV-Zeichenfolgen verwendeten Trennzeichen übereinstimmt. Andernfalls kann ConvertFrom-CSV keine Objekte aus den CSV-Zeichenfolgen generieren. In diesem Beispiel wird mit dem Befehl "Get-Culture" das Listentrennzeichen überprüft, bevor der Befehl "ConvertFrom-CSV" verwendet wird.
Siehe auch