ConvertFrom-Csv
Konvertiert Objekteigenschaften im CSV-Format (Character Separated Value) in CSV-Versionen der ursprünglichen Objekte.
Syntax
Delimiter (Standard)
ConvertFrom-Csv
[[-Delimiter] <Char>]
[-InputObject] <PSObject[]>
[-Header <String[]>]
[<CommonParameters>]
UseCulture
ConvertFrom-Csv
[-InputObject] <PSObject[]>
-UseCulture
[-Header <String[]>]
[<CommonParameters>]
Beschreibung
Das Cmdlet ConvertFrom-Csv konvertiert CSV-Daten (Character Separated Value) in PSObject- Typobjekte für jede Zeile mit CSV-Daten. Die neuen Objekte werden in die Pipeline geschrieben, in der Reihenfolge, in der sie aus den CSV-Daten gelesen werden. Die Werte in der Spaltenüberschriftzeile der CSV werden zu den Namen der Eigenschaften, die jedem neuen PSObject-hinzugefügt werden.
Die von ConvertFrom-Csv erstellten Objekte sind PSObject Typobjekt für jede Zeile in der CSV-Datei. Die Eigenschaftswerte der CSV-Objekte sind Zeichenfolgenversionen der Eigenschaftswerte der ursprünglichen Objekte. Die CSV-Versionen der Objekte haben keine Methoden.
Sie können auch die cmdlets Export-Csv und Import-Csv verwenden, um Objekte in CSV-Zeichenfolgen in einer Datei und zurück zu konvertieren. Diese Cmdlets sind mit dem ConvertTo-Csv und ConvertFrom-Csv Cmdlets identisch, mit der Ausnahme, dass sie die CSV-Zeichenfolgen in einer Datei speichern.
Der PSObject- Typ behält die Reihenfolge der Eigenschaften in der Spaltenüberschriftreihenfolge bei. Dies bedeutet, dass Sie dieselbe Spaltenreihenfolge erhalten, wenn Sie die Objekte wieder in das CSV-Format konvertieren.
Beispiele
Beispiel 1: Konvertieren von Prozessen auf dem lokalen Computer in das CSV-Format
In diesem Beispiel wird gezeigt, wie die Prozesse auf dem lokalen Computer in das CSV-Format konvertiert und dann im Objektformular wiederhergestellt werden.
$P = Get-Process | ConvertTo-Csv
$P | ConvertFrom-Csv
Das Cmdlet Get-Process sendet die Prozesse an ConvertTo-Csv. Das Cmdlet ConvertTo-Csv konvertiert die Prozessobjekte in eine Reihe von CSV-Zeichenfolgen. Das Cmdlet ConvertFrom-Csv konvertiert die CSV-Zeichenfolgen in CSV-Versionen der ursprünglichen Prozessobjekte.
Die CSV-Zeichenfolgen werden in der variablen $P gespeichert.
Beispiel 2: Konvertieren eines Datenobjekts in das CSV-Format und dann in das CSV-Objektformat
In diesem Beispiel wird gezeigt, wie ein Datenobjekt in das CSV-Format und dann in das CSV-Objektformat konvertiert wird.
$Date = Get-Date | ConvertTo-Csv -Delimiter ';'
ConvertFrom-Csv -InputObject $Date -Delimiter ';'
Der erste Befehl verwendet Get-Date, um das aktuelle Datum und die aktuelle Uhrzeit der Pipeline an ConvertTo-Csvzu senden. Das Cmdlet ConvertTo-Csv konvertiert das Datumsobjekt in eine Reihe von CSV-Zeichenfolgen. Der parameter Delimiter wird verwendet, um ein Semikolontrennzeichen anzugeben. Die Zeichenfolgen werden in der variablen $Date gespeichert.
Beispiel 3: Verwenden des Headerparameters zum Ändern der Namen von Eigenschaften
In diesem Beispiel wird gezeigt, wie Sie den parameter Header von ConvertFrom-Csv verwenden, um die Namen der Eigenschaften im resultierenden importierten Objekt zu ändern.
$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]
Das Cmdlet Start-Job startet einen Hintergrundauftrag, der Get-Processausgeführt wird. Ein Auftragsobjekt wird an ConvertTo-Csv die Pipeline gesendet und in eine CSV-Zeichenfolge konvertiert. Der NoTypeInformation Parameter entfernt den Typinformationsheader aus der CSV-Ausgabe und ist in PowerShell v6 und höher optional. Die $Header Variable enthält einen benutzerdefinierten Header, der die folgenden Standardwerte ersetzt: HasMoreData, JobStateInfo, PSBeginTime, PSEndTime, und PSJobTypeName. Die $J Variable enthält die CSV-Zeichenfolge und wird verwendet, um den Standardheader zu entfernen. Das cmdlet ConvertFrom-Csv konvertiert die CSV-Zeichenfolge in eine PSCustomObject- und verwendet den parameter Header, um die variable $Header anzuwenden.
Beispiel 4: Konvertieren von CSV-Zeichenfolgen von Dienstobjekten
In diesem Beispiel wird gezeigt, wie Sie das cmdlet ConvertFrom-Csv mit dem Parameter UseCulture verwenden.
(Get-Culture).TextInfo.ListSeparator
$Services = (Get-Service | ConvertTo-Csv)
ConvertFrom-Csv -InputObject $Services -UseCulture
Das cmdlet Get-Culture verwendet die geschachtelten Eigenschaften TextInfo- und ListSeparator-, um das Standardlistentrennzeichen der aktuellen Kultur abzurufen. Das Cmdlet Get-Service sendet Dienstobjekte an ConvertTo-Csv. Die ConvertTo-Csv konvertiert die Dienstobjekte in eine Reihe von CSV-Zeichenfolgen. Die CSV-Zeichenfolgen werden in der variablen $Services gespeichert. Das cmdlet ConvertFrom-Csv verwendet den parameter InputObject und konvertiert die CSV-Zeichenfolgen aus der variablen $Services. Der parameter UseCulture verwendet das Standardlistentrennzeichen der aktuellen Kultur.
Wenn der UseCulture-Parameter verwendet wird, stellen Sie sicher, dass das Standardlistentrennzeichen der aktuellen Kultur dem in den CSV-Zeichenfolgen verwendeten Trennzeichen entspricht. Andernfalls können ConvertFrom-Csv keine Objekte aus den CSV-Zeichenfolgen generieren.
Beispiel 5: Konvertieren von CSV-Daten im erweiterten W3C-Protokollformat
In diesem Beispiel wird gezeigt, wie CSV-Daten im erweiterten W3C-Protokollformat in Objekte konvertiert werden.
$logData = @"
#Version: 1.0
#Date: 12-Jan-1996 00:00:00
#Fields: time,cs-method,cs-uri
00:34:23,GET,/foo/bar.html
12:21:16,GET,/foo/bar.html
12:45:52,GET,/foo/bar.html
12:57:34,GET,/foo/bar.html
"@
ConvertFrom-Csv $logData
time cs-method cs-uri
---- --------- ------
00:34:23 GET /foo/bar.html
12:21:16 GET /foo/bar.html
12:45:52 GET /foo/bar.html
12:57:34 GET /foo/bar.html
Parameter
-Delimiter
Gibt das Trennzeichen an, das die Eigenschaftswerte in den CSV-Zeichenfolgen trennt. Der Standardwert ist ein Komma (,). Geben Sie ein Zeichen ein, z. B. einen Doppelpunkt (:). Um ein Semikolon (;) anzugeben, schließen Sie es in einfache Anführungszeichen ein.
Wenn Sie ein anderes Zeichen als das tatsächliche Zeichenfolgentrennzeichen in der Datei angeben, können ConvertFrom-Csv die Objekte nicht aus den CSV-Zeichenfolgen erstellen und die CSV-Zeichenfolgen zurückgeben.
Parametereigenschaften
| Typ: | Char |
| Standardwert: | comma (,) |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
Delimiter
| Position: | 1 |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Header
Gibt eine alternative Spaltenüberschriftszeile für die importierte Zeichenfolge an. Die Spaltenüberschrift bestimmt die Eigenschaftennamen der objekte, die von ConvertFrom-Csverstellt wurden.
Geben Sie Spaltenüberschriften als durch Zeichen getrennte Liste ein. Schließen Sie die Kopfzeilenzeichenfolge nicht in Anführungszeichen ein. Schließen Sie jede Spaltenüberschrift in einfache Anführungszeichen ein.
Wenn Sie weniger Spaltenüberschriften eingeben, als Datenspalten vorhanden sind, werden die verbleibenden Datenspalten verworfen. Wenn Sie mehr Spaltenüberschriften eingeben, als Datenspalten vorhanden sind, werden die zusätzlichen Spaltenüberschriften mit leeren Datenspalten erstellt.
Wenn Sie den parameter Header verwenden, lassen Sie die Spaltenüberschriftzeichenfolge aus den CSV-Zeichenfolgen weg. Andernfalls erstellt dieses Cmdlet ein zusätzliches Objekt aus den Elementen in der Kopfzeile.
Parametereigenschaften
| Typ: | String[] |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-InputObject
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 Ausdruck ein, der die CSV-Zeichenfolgen abruft. Sie können die CSV-Zeichenfolgen auch an ConvertFrom-Csvübergeben.
Parametereigenschaften
| Typ: | PSObject[] |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | 0 |
| Obligatorisch: | True |
| Wert aus Pipeline: | True |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | False |
-UseCulture
Verwendet das Listentrennzeichen für die aktuelle Kultur als Elementtrennzeichen. Um das Listentrennzeichen für eine Kultur zu finden, verwenden Sie den folgenden Befehl: (Get-Culture).TextInfo.ListSeparator.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
UseCulture
| Position: | Named |
| Obligatorisch: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
CommonParameters
Dieses Cmdlet unterstützt die allgemeinen Parameter -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction und -WarningVariable. Weitere Informationen findest du unter about_CommonParameters.
Eingaben
String
Sie können CSV-Zeichenfolgen an dieses Cmdlet weiterleiten.
Ausgaben
PSObject
Dieses Cmdlet gibt die von den Eigenschaften in den CSV-Zeichenfolgen beschriebenen Objekte zurück.
Hinweise
Im CSV-Format wird jedes Objekt durch eine durch Zeichen getrennte Liste der Eigenschaftswerte des Objekts dargestellt. Die Eigenschaftswerte werden mithilfe der ToString()-Methode des Objekts in Zeichenfolgen konvertiert. Es gibt keine Möglichkeit, die Methoden des Objekts zu exportieren.
ConvertFrom-Csv unterstützt auch das Erweiterte W3C-Protokollformat. Zeilen, die mit dem Hashzeichen (#) beginnen, werden als Kommentare behandelt und ignoriert, es sei denn, der Kommentar beginnt mit #Fields: und enthält eine durch Trennzeichen getrennte Liste von Spaltennamen. In diesem Fall verwendet das Cmdlet diese Spaltennamen. Dies ist das Standardformat für Windows IIS und andere Webserverprotokolldateien. Weitere Informationen finden Sie unter Erweitertes Protokolldateiformat.