Freigeben über


ConvertTo-Csv

Konvertiert .NET-Objekte in eine Reihe von zeichentrennten Zeichenfolgen (CSV).

Syntax

ConvertTo-Csv
              [-InputObject] <psobject>
              [[-Delimiter] <char>]
              [-NoTypeInformation]
              [<CommonParameters>]
ConvertTo-Csv
              [-InputObject] <psobject>
              [-UseCulture]
              [-NoTypeInformation]
              [<CommonParameters>]

Beschreibung

Das Cmdlet ConvertTo-CSV gibt eine Reihe von CSV-Zeichenfolgen (Character-Separated Value) zurück, die die von Ihnen übermittelten Objekte darstellen. Anschließend können Sie das Cmdlet ConvertFrom-Csv verwenden, um Objekte aus den CSV-Zeichenfolgen neu zu erstellen. Die aus CSV konvertierten Objekte sind Zeichenfolgenwerte der ursprünglichen Objekte, die Eigenschaftswerte und keine Methoden enthalten.

Sie können das Cmdlet Export-Csv verwenden, um Objekte in CSV-Zeichenfolgen zu konvertieren. Export-CSV ähnelt ConvertTo-CSV, mit der Ausnahme, dass die CSV-Zeichenfolgen in einer Datei gespeichert werden.

Das Cmdlet ConvertTo-CSV verfügt über Parameter, um ein anderes Trennzeichen als ein Komma anzugeben oder die aktuelle Kultur als Trennzeichen zu verwenden.

Beispiele

Beispiel 1: Konvertieren eines Objekts in CSV

In diesem Beispiel wird ein Process -Objekt in eine CSV-Zeichenfolge konvertiert.

Get-Process -Name 'PowerShell' | ConvertTo-Csv -NoTypeInformation

"Name","SI","Handles","VM","WS","PM","NPM","Path","Company","CPU","FileVersion", ...
"powershell","11","691","2204036739072","175943680","132665344","33312", ...

Das cmdlet Get-Process ruft das Process-Objekt ab und verwendet den Parameter Name, um den PowerShell-Prozess anzugeben. Das Prozessobjekt wird an das Cmdlet ConvertTo-CSV weitergeleitet. Das Cmdlet ConvertTo-CSV konvertiert das Objekt in CSV-Zeichenfolgen. Der NoTypeInformation Parameter entfernt den #TYPE Informationsheader aus der CSV-Ausgabe.

Beispiel 2: Konvertieren eines DateTime-Objekts in CSV

In diesem Beispiel wird ein DateTime- -Objekt in eine CSV-Zeichenfolge konvertiert.

$Date = Get-Date
ConvertTo-Csv -InputObject $Date -Delimiter ';' -NoTypeInformation

"DisplayHint";"DateTime";"Date";"Day";"DayOfWeek";"DayOfYear";"Hour";"Kind";"Millisecond";"Minute";"Month";"Second";"Ticks";"TimeOfDay";"Year"
"DateTime";"Friday, January 4, 2019 14:40:51";"1/4/2019 00:00:00";"4";"Friday";"4";"14";"Local";"711";"40";"1";"51";"636822096517114991";"14:40:51.7114991";"2019"

Das cmdlet Get-Date ruft das DateTime- objekt ab und speichert es in der variablen $Date. Das cmdlet ConvertTo-Csv konvertiert das DateTime-objekt in Zeichenfolgen. Der parameter InputObject verwendet das in der $Date Variable gespeicherte DateTime--Objekt. Der parameter Delimiter gibt ein Semikolon an, um die Zeichenfolgenwerte zu trennen. Der NoTypeInformation Parameter entfernt den #TYPE Informationsheader aus der CSV-Ausgabe.

Beispiel 3: Konvertieren des PowerShell-Ereignisprotokolls in CSV

In diesem Beispiel wird das Windows-Ereignisprotokoll für PowerShell in eine Reihe von CSV-Zeichenfolgen konvertiert.

(Get-Culture).TextInfo.ListSeparator
Get-WinEvent -LogName 'Windows PowerShell' | ConvertTo-Csv -UseCulture -NoTypeInformation

,
"Message","Id","Version","Qualifiers","Level","Task","Opcode","Keywords","RecordId", ...
"Error Message = System error","403",,"0","4","4",,"36028797018963968","46891","PowerShell", ...

Das Cmdlet Get-Culture verwendet die geschachtelten Eigenschaften TextInfo- und ListSeparator- und zeigt das Standardlistentrennzeichen der aktuellen Kultur an. Das Cmdlet Get-WinEvent ruft die Ereignisprotokollobjekte ab und verwendet den parameter LogName, um den Namen der Protokolldatei anzugeben. Die Ereignisprotokollobjekte werden an das Cmdlet ConvertTo-Csv weitergeleitet. Das Cmdlet ConvertTo-Csv konvertiert die Ereignisprotokollobjekte in eine Reihe von CSV-Zeichenfolgen. Der parameter UseCulture verwendet das Standardlistentrennzeichen der aktuellen Kultur als Trennzeichen. Der NoTypeInformation Parameter entfernt den #TYPE Informationsheader aus der CSV-Ausgabe.

Parameter

-Delimiter

Gibt das Trennzeichen an, um die Eigenschaftswerte in CSV-Zeichenfolgen zu trennen. 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.

Typ:Char
Position:1
Standardwert:comma (,)
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-InputObject

Gibt die Objekte an, die in CSV-Zeichenfolgen konvertiert werden. Geben Sie eine Variable ein, die die Objekte enthält, oder geben Sie einen Befehl oder Ausdruck ein, der die Objekte abruft. Sie können Objekte auch an ConvertTo-CSVverrohren.

Typ:PSObject
Position:0
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-NoTypeInformation

Entfernt den #TYPE Informationsheader aus der Ausgabe. Dieser Parameter wurde zur Standardeinstellung in PowerShell 6.0 und ist aus Gründen der Abwärtskompatibilität enthalten.

Typ:SwitchParameter
Aliase:NTI
Position:Named
Standardwert:False
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren: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.

Typ:SwitchParameter
Position:Named
Standardwert:False
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

Eingaben

PSObject

Sie können jedes Objekt, das über einen ETS-Adapter (Extended Type System) verfügt, an dieses Cmdlet weiterleiten.

Ausgaben

String

Dieses Cmdlet gibt eine oder mehrere Zeichenfolgen zurück, die jedes konvertierte Objekt darstellen.

Hinweise

Im CSV-Format wird jedes Objekt durch eine durch Zeichen getrennte Liste seines Eigenschaftswerts dargestellt. Die Eigenschaftswerte werden mithilfe der ToString()- methode des Objekts in Zeichenfolgen konvertiert. Die Zeichenfolgen werden durch den Eigenschaftswertnamen dargestellt. ConvertTo-CSV exportiert die Methoden des Objekts nicht.

Die CSV-Zeichenfolgen werden wie folgt ausgegeben:

  • Standardmäßig enthält die erste Zeichenfolge den #TYPE Informationsheader gefolgt vom vollqualifizierten Namen des Objekttyps. Beispiel: #TYPE System.Diagnostics.Process.
  • Wenn NoTypeInformation verwendet wird, enthält die erste Zeichenfolge die Spaltenüberschriften. Die Kopfzeilen enthalten die Eigenschaftennamen des ersten Objekts als durch Trennzeichen getrennte Liste.
  • Die verbleibenden Zeichenfolgen enthalten durch Kommas getrennte Listen der Eigenschaftswerte jedes Objekts.

Wenn Sie mehrere Objekte an ConvertTo-CSVübermitteln, sortiert ConvertTo-CSV die Zeichenfolgen basierend auf den Eigenschaften des ersten objekts, das Sie übermitteln. Wenn die verbleibenden Objekte nicht über eine der angegebenen Eigenschaften verfügen, ist der Eigenschaftswert dieses Objekts Null, wie durch zwei aufeinander folgende Kommas dargestellt. Wenn die verbleibenden Objekte zusätzliche Eigenschaften aufweisen, werden diese Eigenschaftswerte ignoriert.