ConvertFrom-Csv
Konvertiert Objekteigenschaften im durch Trennzeichen getrennten (CSV-)Format in CSV-Versionen der ursprünglichen Objekte.
Syntax
ConvertFrom-Csv
[-InputObject] <psobject[]>
[[-Delimiter] <char>]
[-Header <string[]>]
[<CommonParameters>]
ConvertFrom-Csv
[-InputObject] <psobject[]>
-UseCulture
[-Header <string[]>]
[<CommonParameters>]
Beschreibung
Das ConvertFrom-Csv
Cmdlet erstellt Objekte aus CSV-Zeichenfolgen mit variabler Länge, die ConvertTo-Csv
vom Cmdlet generiert werden.
Sie können die Parameter dieses Cmdlets verwenden, um die Spaltenheaderzeile anzugeben, die die Eigenschaftennamen der resultierenden Objekte bestimmt, um das Elementtrennzeichen anzugeben, oder um dieses Cmdlet anzuweisen, das Listentrennzeichen für die aktuelle Kultur als Trennzeichen zu verwenden.
Die Objekte, die erstellt werden, ConvertFrom-Csv
sind CSV-Versionen der ursprünglichen Objekte. 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 Export-Csv
Cmdlets und Import-Csv
verwenden, um Objekte in CSV-Zeichenfolgen in einer Datei (und zurück) zu konvertieren. Diese Cmdlets sind mit den ConvertTo-Csv
Cmdlets und ConvertFrom-Csv
identisch, mit der Ausnahme, dass sie die CSV-Zeichenfolgen in einer Datei speichern.
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 anschließend in objektform wiederhergestellt werden.
$P = Get-Process | ConvertTo-Csv
$P | ConvertFrom-Csv
Das Get-Process
Cmdlet sendet die Prozesse in der Pipeline an ConvertTo-Csv
. Das ConvertTo-Csv
Cmdlet konvertiert die Prozessobjekte in eine Reihe von CSV-Zeichenfolgen. Das ConvertFrom-Csv
Cmdlet konvertiert die CSV-Zeichenfolgen in CSV-Versionen der ursprünglichen Prozessobjekte. Die CSV-Zeichenfolgen werden in der $P
Variablen 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 Uhrzeit der Pipeline an zu ConvertTo-Csv
senden. Das ConvertTo-Csv
Cmdlet konvertiert das date-Objekt in eine Reihe von CSV-Zeichenfolgen.
Der Trennzeichenparameter wird verwendet, um ein Semikolontrennzeichen anzugeben. Die Zeichenfolgen werden in der $Date
Variablen gespeichert.
Beispiel 3: Verwenden des Headerparameters zum Ändern der Namen von Eigenschaften
In diesem Beispiel wird gezeigt, wie Sie den Header-Parameter von ConvertFrom-Csv
verwenden, um die Namen von 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 Start-Job
Cmdlet startet einen Hintergrundauftrag, mit dem ausgeführt wird Get-Process
. Ein Auftragsobjekt wird an die Pipeline ConvertTo-Csv
gesendet und in eine CSV-Zeichenfolge konvertiert. Der NoTypeInformation-Parameter entfernt den Typinformationsheader aus der CSV-Ausgabe und ist in PowerShell Core 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 ConvertFrom-Csv
Cmdlet konvertiert die CSV-Zeichenfolge in ein PSCustomObject und verwendet den Header-Parameter , um die $Header
Variable anzuwenden.
Beispiel 4: Konvertieren von CSV-Zeichenfolgen von Dienstobjekten
In diesem Beispiel wird gezeigt, wie Sie das ConvertFrom-Csv
Cmdlet mit dem UseCulture-Parameter verwenden.
(Get-Culture).TextInfo.ListSeparator
$Services = (Get-Service | ConvertTo-Csv)
ConvertFrom-Csv -InputObject $Services -UseCulture
Das Get-Culture
Cmdlet verwendet die geschachtelten Eigenschaften TextInfo und ListSeparator , um das Standardlistentrennzeichen der aktuellen Kultur abzurufen. Das Get-Service
Cmdlet sendet Dienstobjekte in der Pipeline an ConvertTo-Csv
. Konvertiert ConvertTo-Csv
die Dienstobjekte in eine Reihe von CSV-Zeichenfolgen. Die CSV-Zeichenfolgen werden in der $Services
Variablen gespeichert. Das ConvertFrom-Csv
Cmdlet verwendet den InputObject-Parameter und konvertiert die CSV-Zeichenfolgen aus der $Services
Variablen. Der UseCulture-Parameter verwendet das Standardlistentrennzeichen der aktuellen Kultur.
Wenn der UseCulture-Parameter verwendet wird, stellen Sie sicher, dass das Standardlistentrennzeichen der aktuellen Kultur mit dem in den CSV-Zeichenfolgen verwendeten Trennzeichen übereinstimmt. ConvertFrom-Csv
Andernfalls können keine Objekte aus den CSV-Zeichenfolgen generiert werden.
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 (;) es in einfache Anführungszeichen einschließen.
Wenn Sie ein anderes Zeichen als das tatsächliche Zeichenfolgentrennzeichen in der Datei angeben, ConvertFrom-Csv
können die Objekte nicht aus den CSV-Zeichenfolgen erstellt werden und geben die CSV-Zeichenfolgen zurück.
Type: | Char |
Position: | 1 |
Default value: | comma (,) |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Header
Gibt eine alternative Spaltenkopfzeile für die importierte Zeichenfolge an. Der Spaltenheader bestimmt die Eigenschaftennamen der von ConvertFrom-Csv
erstellten Objekte.
Geben Sie Spaltenheader als durch Trennzeichen getrennte Liste ein. Die Kopfzeichenfolge darf nicht in Anführungszeichen eingeschlossen werden. Schließen Sie jede Spaltenüberschrift in einzelne Anführungszeichen ein.
Wenn Sie weniger Spaltenheader eingeben, als Datenspalten vorhanden sind, werden die restlichen Datenspalten verworfen. Wenn Sie mehr Spaltenheader eingeben, als Datenspalten vorhanden sind, werden die zusätzlichen Spaltenheader mit leeren Datenspalten erstellt.
Wenn Sie den Header-Parameter verwenden, lassen Sie die Spaltenheaderzeichenfolge aus den CSV-Zeichenfolgen aus. Andernfalls erstellt dieses Cmdlet ein zusätzliches Objekt aus den Elementen in der Headerzeile.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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 einen Ausdruck ein, mit dem die CSV-Zeichenfolgen abgerufen werden. Sie können die CSV-Zeichenfolgen auch an übergeben ConvertFrom-Csv
.
Type: | PSObject[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-UseCulture
Verwendet das Listentrennzeichen für die aktuelle Kultur als Elementtrennzeichen. Verwenden Sie den folgenden Befehl, um das Listentrennzeichen für eine Kultur zu suchen: (Get-Culture).TextInfo.ListSeparator
.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Eingaben
Sie können CSV-Zeichenfolgen an dieses Cmdlet weiterleiten.
Ausgaben
Dieses Cmdlet gibt die Objekte zurück, die durch die Eigenschaften in den CSV-Zeichenfolgen beschrieben werden.
Hinweise
Da es sich bei den importierten Objekten um CSV-Versionen des Objekttyps handelt, werden sie nicht von den Formatierungseinträgen des PowerShell-Typs erkannt und formatiert, die die Nicht-CSV-Versionen des Objekttyps formatieren.
Im CSV-Format wird jedes Objekt durch eine durch Trennzeichen getrennte Liste der Eigenschaftswerte des Objekts dargestellt. Die Eigenschaftswerte werden (mithilfe der ToString() -Methode des Objekts in Zeichenfolgen konvertiert, sodass sie durch den Namen des Eigenschaftswerts dargestellt werden. Dieses Cmdlet exportiert die Methoden des -Objekts nicht.