Freigeben über


Export-Csv

Konvertiert Objekte in eine Reihe von CSV-Zeichenfolgen (Character Separated Value) und speichert die Zeichenfolgen in einer Datei.

Syntax

Export-Csv
      -InputObject <PSObject>
      [[-Path] <String>]
      [-LiteralPath <String>]
      [-Force]
      [-NoClobber]
      [-Encoding <Encoding>]
      [-Append]
      [[-Delimiter] <Char>]
      [-IncludeTypeInformation]
      [-NoTypeInformation]
      [-QuoteFields <String[]>]
      [-UseQuotes <QuoteKind>]
      [-NoHeader]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Export-Csv
      -InputObject <PSObject>
      [[-Path] <String>]
      [-LiteralPath <String>]
      [-Force]
      [-NoClobber]
      [-Encoding <Encoding>]
      [-Append]
      [-UseCulture]
      [-IncludeTypeInformation]
      [-NoTypeInformation]
      [-QuoteFields <String[]>]
      [-UseQuotes <QuoteKind>]
      [-NoHeader]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Beschreibung

Das Export-CSV Cmdlet erstellt eine CSV-Datei der objekte, die Sie übermitteln. Jedes Objekt ist eine Zeile, die eine durch Zeichen getrennte Liste der Eigenschaftswerte des Objekts enthält. Mit dem Export-CSV Cmdlet können Sie Tabellenkalkulationen erstellen und Daten für Programme freigeben, die CSV-Dateien als Eingabe akzeptieren.

Formatieren Sie keine Objekte, bevor Sie sie an das Export-CSV Cmdlet senden. Wenn Export-CSV formatierte Objekte empfangen werden, enthält die CSV-Datei die Formateigenschaften anstelle der Objekteigenschaften. Verwenden Sie das Select-Object Cmdlet, um nur ausgewählte Eigenschaften eines Objekts zu exportieren.

Beispiele

Beispiel 1: Exportieren von Prozesseigenschaften in eine CSV-Datei

In diesem Beispiel werden Prozessobjekte mit bestimmten Eigenschaften ausgewählt, die Objekte werden in eine CSV-Datei exportiert.

Get-Process -Name WmiPrvSE |
    Select-Object -Property BasePriority,Id,SessionId,WorkingSet |
    Export-Csv -Path .\WmiData.csv -NoTypeInformation
Import-Csv -Path .\WmiData.csv

BasePriority Id    SessionId WorkingSet
------------ --    --------- ----------
8            976   0         20267008
8            2292  0         36786176
8            3816  0         30351360
8            8604  0         15011840
8            10008 0         8830976
8            11764 0         14237696
8            54632 0         9502720

Das Get-Process Cmdlet ruft die Process-Objekte ab. Der Name-Parameter filtert die Ausgabe so, dass nur die WmiPrvSE-Prozessobjekte enthalten sind. Die Prozessobjekte werden an das Select-Object Cmdlet gesendet. Select-Object verwendet den Parameter Property , um eine Teilmenge von Prozessobjekteigenschaften auszuwählen. Die Prozessobjekte werden an das Export-Csv Cmdlet gesendet. Export-Csv konvertiert die Prozessobjekte in eine Reihe von CSV-Zeichenfolgen. Der Parameter Path gibt an, dass die WmiData.csv Datei im aktuellen Verzeichnis gespeichert wird. Der Parameter NoTypeInformation entfernt den #TYPE Informationsheader aus der CSV-Ausgabe und ist in PowerShell 6 nicht erforderlich. Das Import-Csv Cmdlet verwendet den Parameter "Path ", um die Datei im aktuellen Verzeichnis anzuzeigen.

Beispiel 2: Exportieren von Prozessen in eine durch Trennzeichen getrennte Datei

In diesem Beispiel werden Process-Objekte aufgerufen und die Objekte in eine CSV-Datei exportiert.

Get-Process | Export-Csv -Path .\Processes.csv -NoTypeInformation
Get-Content -Path .\Processes.csv

"Name","SI","Handles","VM","WS","PM","NPM","Path","Parent","Company","CPU","FileVersion", ...
"ApplicationFrameHost","4","511","2203597099008","35364864","21979136","30048", ...

Das Get-Process Cmdlet ruft Process-Objekte ab. Die Prozessobjekte werden an das Export-Csv Cmdlet gesendet. Export-Csv konvertiert die Prozessobjekte in eine Reihe von CSV-Zeichenfolgen. Der Parameter Path gibt an, dass die Processes.csv Datei im aktuellen Verzeichnis gespeichert wird. Der Parameter NoTypeInformation entfernt den #TYPE Informationsheader aus der CSV-Ausgabe und ist in PowerShell 6 nicht erforderlich. Das Get-Content Cmdlet verwendet den Parameter "Path ", um die Datei im aktuellen Verzeichnis anzuzeigen.

Beispiel 3: Exportieren von Prozessen in eine durch Semikolons getrennte Datei

In diesem Beispiel werden Process -Objekte und exportiert die Objekte in eine Datei mit einem Semikolontrennzeichen.

Get-Process | Export-Csv -Path .\Processes.csv -Delimiter ';' -NoTypeInformation
Get-Content -Path .\Processes.csv

"Name";"SI";"Handles";"VM";"WS";"PM";"NPM";"Path";"Parent";"Company";"CPU";"FileVersion"; ...
"ApplicationFrameHost";"4";"509";"2203595321344";"34807808";"21770240";"29504"; ...

Das Get-Process Cmdlet ruft Process-Objekte ab. Die Prozessobjekte werden an das Export-Csv Cmdlet gesendet. Export-Csv konvertiert die Prozessobjekte in eine Reihe von CSV-Zeichenfolgen. Der Parameter Path gibt an, dass die Processes.csv Datei im aktuellen Verzeichnis gespeichert wird. Der Parameter Delimiter gibt ein Semikolon an, um die Zeichenfolgenwerte zu trennen. Der Parameter NoTypeInformation entfernt den #TYPE Informationsheader aus der CSV-Ausgabe und ist in PowerShell 6 nicht erforderlich. Das Get-Content Cmdlet verwendet den Parameter "Path ", um die Datei im aktuellen Verzeichnis anzuzeigen.

Beispiel 4: Exportieren von Prozessen mithilfe des Listentrennzeichens der aktuellen Kultur

In diesem Beispiel werden Process-Objekte und die Objekte in eine Datei exportiert. Das Trennzeichen ist das Listentrennzeichen der aktuellen Kultur.

(Get-Culture).TextInfo.ListSeparator
Get-Process | Export-Csv -Path .\Processes.csv -UseCulture -NoTypeInformation
Get-Content -Path .\Processes.csv

"Name","SI","Handles","VM","WS","PM","NPM","Path","Parent","Company","CPU","FileVersion", ...
"ApplicationFrameHost","4","511","2203597099008","35364864","21979136","30048", ...

Das Get-Culture Cmdlet verwendet die geschachtelten Eigenschaften TextInfo und ListSeparator und zeigt das Standardlistentrennzeichen der aktuellen Kultur an. Das Get-Process Cmdlet ruft Process-Objekte ab. Die Prozessobjekte werden an das Export-Csv Cmdlet gesendet. Export-Csv konvertiert die Prozessobjekte in eine Reihe von CSV-Zeichenfolgen. Der Parameter Path gibt an, dass die Processes.csv Datei im aktuellen Verzeichnis gespeichert wird. Der UseCulture-Parameter verwendet das Standardlistentrennzeichen der aktuellen Kultur als Trennzeichen. Der Parameter NoTypeInformation entfernt den #TYPE Informationsheader aus der CSV-Ausgabe und ist in PowerShell 6 nicht erforderlich. Das Get-Content Cmdlet verwendet den Parameter "Path ", um die Datei im aktuellen Verzeichnis anzuzeigen.

Beispiel 5: Exportieren von Prozessen mit Typinformationen

In diesem Beispiel wird erläutert, wie die #TYPE Kopfzeileninformationen in eine CSV-Datei eingeschlossen werden. Der #TYPE-Header ist die Standardeinstellung in Versionen vor PowerShell 6.0.

Get-Process | Export-Csv -Path .\Processes.csv -IncludeTypeInformation
Get-Content -Path .\Processes.csv

#TYPE System.Diagnostics.Process
"Name","SI","Handles","VM","WS","PM","NPM","Path","Company","CPU","FileVersion", ...
"ApplicationFrameHost","4","507","2203595001856","35139584","20934656","29504", ...

Das Get-Process Cmdlet ruft Process-Objekte ab. Die Prozessobjekte werden an das Export-Csv Cmdlet gesendet. Export-Csv konvertiert die Prozessobjekte in eine Reihe von CSV-Zeichenfolgen. Der Parameter Path gibt an, dass die Processes.csv Datei im aktuellen Verzeichnis gespeichert wird. IncludeTypeInformation enthält den #TYPE Informationsheader in der CSV-Ausgabe. Das Get-Content Cmdlet verwendet den Parameter "Path ", um die Datei im aktuellen Verzeichnis anzuzeigen.

Beispiel 6: Exportieren und Anfügen von Objekten an eine CSV-Datei

In diesem Beispiel wird beschrieben, wie Objekte in eine CSV-Datei exportiert und der Append-Parameter zum Hinzufügen von Objekten zu einer vorhandenen Datei verwendet wird.

$AppService = (Get-Service -DisplayName *Application* | Select-Object -Property DisplayName, Status)
$AppService | Export-Csv -Path .\Services.Csv -NoTypeInformation
Get-Content -Path .\Services.Csv
$WinService = (Get-Service -DisplayName *Windows* | Select-Object -Property DisplayName, Status)
$WinService | Export-Csv -Path .\Services.csv -NoTypeInformation -Append
Get-Content -Path .\Services.Csv

"DisplayName","Status"
"Application Layer Gateway Service","Stopped"
"Application Identity","Running"
"Windows Audio Endpoint Builder","Running"
"Windows Audio","Running"
"Windows Event Log","Running"

Das Get-Service Cmdlet ruft Dienstobjekte ab. Der Parameter DisplayName gibt Dienste zurück, die das Wort "Anwendung" enthalten. Die Dienstobjekte werden an das Select-Object Cmdlet gesendet. Select-Object verwendet den Property-Parameter , um die Eigenschaften DisplayName und Status anzugeben. Die $AppService Variable speichert die Objekte.

Die $AppService Objekte werden an das Export-Csv Cmdlet gesendet. Export-Csv konvertiert die Dienstobjekte in eine Reihe von CSV-Zeichenfolgen. Der Parameter Path gibt an, dass die Services.csv Datei im aktuellen Verzeichnis gespeichert wird. Der Parameter NoTypeInformation entfernt den #TYPE Informationsheader aus der CSV-Ausgabe und ist in PowerShell 6 nicht erforderlich. Das Get-Content Cmdlet verwendet den Parameter "Path ", um die Datei im aktuellen Verzeichnis anzuzeigen.

Die Get-Service Und Select-Object Cmdlets werden für Dienste wiederholt, die das Wort Windows enthalten. Die $WinService Variable speichert die Dienstobjekte. Das Export-Csv Cmdlet verwendet den Parameter "Append ", um anzugeben, dass die $WinService Objekte der vorhandenen Services.csv Datei hinzugefügt werden. Das Get-Content Cmdlet wird wiederholt, um die aktualisierte Datei anzuzeigen, die die angefügten Daten enthält.

Beispiel 7: Format-Cmdlet in einer Pipeline erstellt unerwartete Ergebnisse

In diesem Beispiel wird gezeigt, warum es wichtig ist, kein Format-Cmdlet in einer Pipeline zu verwenden. Wenn eine unerwartete Ausgabe empfangen wird, beheben Sie die Pipelinesyntax.

Get-Date | Select-Object -Property DateTime, Day, DayOfWeek, DayOfYear |
 Export-Csv -Path .\DateTime.csv -NoTypeInformation
Get-Content -Path .\DateTime.csv

"DateTime","Day","DayOfWeek","DayOfYear"
"Wednesday, January 2, 2019 14:59:34","2","Wednesday","2"

Get-Date | Format-Table -Property DateTime, Day, DayOfWeek, DayOfYear |
 Export-Csv -Path .\FTDateTime.csv -NoTypeInformation
Get-Content -Path .\FTDateTime.csv

"ClassId2e4f51ef21dd47e99d3c952918aff9cd","pageHeaderEntry","pageFooterEntry","autosizeInfo", ...
"033ecb2bc07a4d43b5ef94ed5a35d280",,,,"Microsoft.PowerShell.Commands.Internal.Format. ...
"9e210fe47d09416682b841769c78b8a3",,,,,
"27c87ef9bbda4f709f6b4002fa4af63c",,,,,
"4ec4f0187cb04f4cb6973460dfe252df",,,,,
"cf522b78d86c486691226b40aa69e95c",,,,,

Das Get-Date Cmdlet ruft das DateTime-Objekt ab. Das Objekt wird an das Select-Object Cmdlet gesendet. Select-Object verwendet den Property-Parameter , um eine Teilmenge von Objekteigenschaften auszuwählen. Das Objekt wird an das Export-Csv Cmdlet gesendet. Export-Csv konvertiert das Objekt in ein CSV-Format. Der Parameter Path gibt an, dass die DateTime.csv Datei im aktuellen Verzeichnis gespeichert wird. Der Parameter NoTypeInformation entfernt den #TYPE Informationsheader aus der CSV-Ausgabe und ist in PowerShell 6 nicht erforderlich. Das Get-Content Cmdlet verwendet den Parameter "Path ", um die CSV-Datei im aktuellen Verzeichnis anzuzeigen.

Wenn das Format-Table Cmdlet in der Pipeline zum Auswählen unerwarteter Ergebnisse verwendet wird, werden unerwartete Ergebnisse empfangen. Format-Tablesendet Tabellenformatobjekte anstelle des DateTime-Objekts an das Export-Csv Cmdlet. Export-Csv konvertiert die Tabellenformatobjekte in eine Reihe von CSV-Zeichenfolgen. Das Get-Content Cmdlet zeigt die CSV-Datei an, die die Tabellenformatobjekte enthält.

Beispiel 8: Verwenden des Force-Parameters zum Überschreiben schreibgeschützter Dateien

In diesem Beispiel wird eine leere, schreibgeschützte Datei erstellt und der Parameter Force verwendet, um die Datei zu aktualisieren.

New-Item -Path .\ReadOnly.csv -ItemType File
Set-ItemProperty -Path .\ReadOnly.csv -Name IsReadOnly -Value $true
Get-Process | Export-Csv -Path .\ReadOnly.csv -NoTypeInformation

Export-Csv : Access to the path 'C:\ReadOnly.csv' is denied.
At line:1 char:15
+ Get-Process | Export-Csv -Path .\ReadOnly.csv -NoTypeInformation
+               ~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : OpenError: (:) [Export-Csv], UnauthorizedAccessException
+ FullyQualifiedErrorId : FileOpenFailure,Microsoft.PowerShell.Commands.ExportCsvCommand

Get-Process | Export-Csv -Path .\ReadOnly.csv -NoTypeInformation -Force
Get-Content -Path .\ReadOnly.csv

"Name";"SI";"Handles";"VM";"WS";"PM";"NPM";"Path";"Parent";"Company";"CPU";"FileVersion"; ...
"ApplicationFrameHost";"4";"509";"2203595321344";"34807808";"21770240";"29504"; ...

Das New-Item Cmdlet verwendet die Parameter "Path " und "ItemType ", um die ReadOnly.csv Datei im aktuellen Verzeichnis zu erstellen. Das Set-ItemProperty Cmdlet verwendet die Parameter Name und Value, um die IsReadOnly-Eigenschaft der Datei auf "true" zu ändern. Das Get-Process Cmdlet ruft Process-Objekte ab. Die Prozessobjekte werden an das Export-Csv Cmdlet gesendet. Export-Csv konvertiert die Prozessobjekte in eine Reihe von CSV-Zeichenfolgen. Der Parameter Path gibt an, dass die ReadOnly.csv Datei im aktuellen Verzeichnis gespeichert wird. Der Parameter NoTypeInformation entfernt den #TYPE Informationsheader aus der CSV-Ausgabe und ist in PowerShell 6 nicht erforderlich. Die Ausgabe zeigt, dass die Datei nicht geschrieben wird, weil der Zugriff verweigert wird.

Der Parameter Force wird dem Export-Csv Cmdlet hinzugefügt, um zu erzwingen, dass der Export in die Datei geschrieben wird. Das Get-Content Cmdlet verwendet den Parameter "Path ", um die Datei im aktuellen Verzeichnis anzuzeigen.

Beispiel 9: Verwenden des Parameters "Force" mit "Append"

In diesem Beispiel wird gezeigt, wie sie die Parameter "Force" und "Append " verwenden. Wenn diese Parameter kombiniert werden, können nicht übereinstimmende Objekteigenschaften in eine CSV-Datei geschrieben werden.

$Content = [PSCustomObject]@{Name = 'PowerShell'; Version = '7.0'}
$Content | Export-Csv -Path .\ParmFile.csv -NoTypeInformation
$AdditionalContent = [PSCustomObject]@{Name = 'Windows PowerShell'; Edition = 'Desktop'}
$AdditionalContent | Export-Csv -Path .\ParmFile.csv -NoTypeInformation -Append

Export-Csv : Cannot append CSV content to the following file: ParmFile.csv.
The appended object does not have a property that corresponds to the following column:
Version. To continue with mismatched properties, add the -Force parameter, and then retry
 the command.
At line:1 char:22
+ $AdditionalContent | Export-Csv -Path .\ParmFile.csv -NoTypeInformation -Append
+                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidData: (Version:String) [Export-Csv], InvalidOperationException
+ FullyQualifiedErrorId : CannotAppendCsvWithMismatchedPropertyNames,Microsoft.PowerShell. ...

$AdditionalContent | Export-Csv -Path .\ParmFile.csv -NoTypeInformation -Append -Force
Import-Csv -Path .\ParmFile.csv

Name               Version
----               -------
PowerShell         7.0
Windows PowerShell

Ein Ausdruck erstellt das PSCustomObject mit den Eigenschaften Name und Version. Die Werte werden in der $Content Variablen gespeichert. Die $Content Variable wird an das Export-Csv Cmdlet gesendet. Export-Csv verwendet den Path-Parameter und speichert die ParmFile.csv Datei im aktuellen Verzeichnis. Der Parameter NoTypeInformation entfernt den #TYPE Informationsheader aus der CSV-Ausgabe und ist in PowerShell 6 nicht erforderlich.

Ein anderer Ausdruck erstellt ein PSCustomObject mit den Eigenschaften Name und Edition . Die Werte werden in der $AdditionalContent Variablen gespeichert. Die $AdditionalContent Variable wird an das Export-Csv Cmdlet gesendet. Der Append-Parameter wird verwendet, um die Daten zur Datei hinzuzufügen. Das Anfügen schlägt fehl, da zwischen Version und Edition ein Eigenschaftsname nicht übereinstimmen kann.

Der Export-Csv Cmdlet Force-Parameter wird verwendet, um zu erzwingen, dass der Export in die Datei geschrieben wird. Die Edition-Eigenschaft wird verworfen. Das Import-Csv Cmdlet verwendet den Parameter "Path ", um die Datei im aktuellen Verzeichnis anzuzeigen.

Beispiel 10: Exportieren in CSV mit Anführungszeichen um zwei Spalten

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

Get-Date | Export-Csv  -QuoteFields "DateTime","Date" -Path .\FTDateTime.csv
Get-Content -Path .\FTDateTime.csv

DisplayHint,"DateTime","Date",Day,DayOfWeek,DayOfYear,Hour,Kind,Millisecond,Minute,Month,Second,Ticks,TimeOfDay,Year
DateTime,"Thursday, August 22, 2019 11:27:34 AM","8/22/2019 12:00:00 AM",22,Thursday,234,11,Local,569,27,8,34,637020700545699784,11:27:34.5699784,2019

Beispiel 11: Exportieren in CSV mit Anführungszeichen nur bei Bedarf

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

Get-Date | Export-Csv  -UseQuotes AsNeeded -Path .\FTDateTime.csv
Get-Content -Path .\FTDateTime.csv

DisplayHint,DateTime,Date,Day,DayOfWeek,DayOfYear,Hour,Kind,Millisecond,Minute,Month,Second,Ticks,TimeOfDay,Year
DateTime,"Thursday, August 22, 2019 11:31:00 AM",8/22/2019 12:00:00 AM,22,Thursday,234,11,Local,713,31,8,0,637020702607132640,11:31:00.7132640,2019

Beispiel 12: Konvertieren von Hashtables in CSV

Wenn Sie In PowerShell 7.2 und höher Hashtables in CSV exportieren, werden die Schlüssel der ersten Hashtabelle serialisiert und als Header in der CSV-Dateiausgabe verwendet.

$person1 = @{
    Name = 'John Smith'
    Number = 1
}

$person2 = @{
    Name = 'Jane Smith'
    Number = 1
}

$allPeople = $person1, $person2
$allPeople | Export-Csv -Path .\People.csv

Get-Content -Path .\People.csv

"Name","Number"
"John Smith","1"
"Jane Smith","2"

Beispiel 13: Konvertieren von Hashtables in CSV mit zusätzlichen Eigenschaften

Wenn Sie in PowerShell 7.2 und höher eine Hashtabelle exportieren, die zusätzliche Eigenschaften hinzugefügt Add-Member hat, oder Select-Object die zusätzlichen Eigenschaften werden auch als Header in der CSV-Datei hinzugefügt.

$allPeople | Add-Member -Name ExtraProp -Value 42 -MemberType NoteProperty
$allPeople | Export-Csv -Path .\People.csv

Get-Content -Path .\People.csv

"Name","Number","ExtraProp"
"John Smith","1","42"
"Jane Smith","2","42"

Jede Hashtabelle verfügt über eine Eigenschaft namens ExtraProp "Hinzugefügt von Add-Member " und wird dann in CSV exportiert. Sie können ExtraProp jetzt sehen, dass es sich bei der CSV-Dateiausgabe um eine Kopfzeile handelt.

Wenn eine hinzugefügte Eigenschaft denselben Namen wie ein Schlüssel aus der Hashtabelle hat, hat der Schlüssel Vorrang, und nur der Schlüssel wird in CSV exportiert.

Parameter

-Append

Verwenden Sie diesen Parameter, Export-CSV sodass die CSV-Ausgabe am Ende der angegebenen Datei hinzugefügt wird. Ohne diesen Parameter wird Export-CSV der Dateiinhalt ohne Warnung ersetzt.

Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.

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

-Confirm

Hiermit werden Sie vor der Ausführung des Cmdlets zur Bestätigung aufgefordert.

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

-Delimiter

Gibt ein Trennzeichen zum Trennen der Eigenschaftswerte 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.

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

-Encoding

Gibt die Codierung für die exportierte CSV-Datei an. Der Standardwert ist utf8NoBOM.

Die zulässigen Werte für diesen Parameter sind wie folgt:

  • ascii: Verwendet die Codierung für den ASCII-Zeichensatz (7-Bit).
  • ansi: Verwendet die Codierung für die ANSI-Codeseite der aktuellen Kultur. Diese Option wurde hinzugefügt.
  • bigendianunicode: Codiert im UTF-16-Format mit der Big-End-Byte-Reihenfolge.
  • bigendianutf32: Codiert im UTF-32-Format mithilfe der Big-End-Byte-Reihenfolge.
  • oem: Verwendet die Standardcodierung für MS-DOS- und Konsolenprogramme.
  • unicode: Codiert im UTF-16-Format mithilfe der Little-Endian-Bytereihenfolge.
  • utf7: Codiert im UTF-7-Format.
  • utf8: Codiert im UTF-8-Format.
  • utf8BOM: Codiert im UTF-8-Format mit Bytereihenfolgezeichen (BOM)
  • utf8NoBOM: Codiert im UTF-8-Format ohne Byte Order Mark (BOM)
  • utf32: Codiert im UTF-32-Format.

Ab PowerShell 6.2 ermöglicht der Encoding-Parameter auch numerische IDs registrierter Codeseiten (z -Encoding 1251. B. ) oder Zeichenfolgennamen registrierter Codeseiten (z -Encoding "windows-1251". B. ). Weitere Informationen finden Sie in der .NET-Dokumentation für Encoding.CodePage.

Ab PowerShell 7.4 können Sie den Ansi Wert für den Codierungsparameter verwenden, um die numerische ID für die ANSI-Codeseite der aktuellen Kultur zu übergeben, ohne sie manuell angeben zu müssen.

Hinweis

UTF-7* wird nicht mehr empfohlen, zu verwenden. Ab PowerShell 7.1 wird eine Warnung geschrieben, wenn Sie für den Codierungsparameter angebenutf7.

Typ:Encoding
Zulässige Werte:ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
Position:Named
Standardwert:UTF8NoBOM
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Force

Mit diesem Parameter können Export-Csv Dateien mit dem Attribut "Schreibgeschützt " überschrieben werden.

Wenn Force - und Append-Parameter kombiniert werden, können Objekte, die nicht übereinstimmende Eigenschaften enthalten, in eine CSV-Datei geschrieben werden. Nur die Eigenschaften, die übereinstimmen, werden in die Datei geschrieben. Die nicht übereinstimmende Eigenschaften werden verworfen.

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

-IncludeTypeInformation

Wenn dieser Parameter verwendet wird, enthält #TYPE die erste Zeile der CSV-Ausgabe den vollqualifizierten Namen des Objekttyps. Beispiel: #TYPE System.Diagnostics.Process.

Dieser Parameter wurde in PowerShell 6.0 eingeführt.

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

-InputObject

Gibt die als CSV-Zeichenfolgen zu exportierenden Objekte an. Geben Sie eine Variable ein, die die Objekte enthält, oder geben Sie einen Befehl oder einen Ausdruck ein, durch den die Objekte abgerufen werden. Sie können objekte auch an Export-CSV.

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

-LiteralPath

Gibt den Pfad zur CSV-Ausgabedatei an. Im Gegensatz zu Path wird der Wert des LiteralPath-Parameters genau so verwendet, wie er eingegeben wird. Es werden keine Zeichen als Platzhalter interpretiert. Wenn der Pfad Escapezeichen enthält, verwenden Sie einfache Anführungszeichen. Einfache Anführungszeichen weisen PowerShell an, keine Zeichen als Escapesequenzen zu interpretieren.

Typ:String
Aliase:PSPath, LP
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-NoClobber

Verwenden Sie diesen Parameter, Export-CSV sodass keine vorhandene Datei überschrieben wird. Wenn die Datei im angegebenen Pfad vorhanden ist, Export-CSV wird die Datei standardmäßig ohne Warnung überschrieben.

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

-NoHeader

Wenn dieser Parameter verwendet wird, schreibt das Cmdlet keine Kopfzeile mit den Spaltennamen in die Ausgabe.

Dieser Parameter wurde in PowerShell 7.4 hinzugefügt.

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

-Path

Ein erforderlicher Parameter, der den Speicherort angibt, an dem die CSV-Ausgabedatei gespeichert werden soll.

Typ:String
Position:0
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-QuoteFields

Gibt die Namen der Spalten an, die zitiert werden sollen. Wenn dieser Parameter verwendet wird, werden nur die angegebenen Spalten zitiert. Dieser Parameter wurde in PowerShell 7.0 hinzugefügt.

Typ:String[]
Aliase:QF
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren: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 finden: (Get-Culture).TextInfo.ListSeparator

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

-UseQuotes

Gibt an, wann Anführungszeichen in den CSV-Dateien verwendet werden. Dabei sind folgende Werte möglich:

  • Nie - keine Anführungszeichen
  • Immer - Anführungszeichen (Standardverhalten)
  • AsNeeded - nur Anführungszeichenfelder, die ein Trennzeichen, ein doppeltes Anführungszeichen oder ein Zeilenumbruchzeichen enthalten

Dieser Parameter wurde in PowerShell 7.0 hinzugefügt.

Typ:Microsoft.PowerShell.Commands.BaseCsvWritingCommand+QuoteKind
Aliase:UQ
Position:Named
Standardwert:Always
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-WhatIf

Verhindert, dass das Cmdlet verarbeitet oder Änderungen vorgenommen wird. Die Ausgabe zeigt, was passiert, wenn das Cmdlet ausgeführt wurde.

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

Eingaben

PSObject

Sie können jedes Objekt mit einem ETS-Adapter (Extended Type System) an dieses Cmdlet weiterleiten.

Ausgaben

None

Dieses Cmdlet gibt keine Ausgabe zurück.

Hinweise

PowerShell enthält die folgenden Aliase für Export-Csv:

  • Alle Plattformen:
    • epcsv

Das Export-CSV Cmdlet konvertiert die Objekte, die Sie in eine Reihe von CSV-Zeichenfolgen übermitteln, und speichert sie in der angegebenen Textdatei. Sie können Export-CSV -IncludeTypeInformation Objekte in einer CSV-Datei speichern und dann das Import-Csv Cmdlet verwenden, um Objekte aus dem Text in der CSV-Datei zu erstellen.

In der CSV-Datei wird jedes Objekt durch eine durch Zeichen getrennte Liste der Eigenschaftswerte des Objekts dargestellt. Die Eigenschaftswerte werden mithilfe der ToString() -Methode in Zeichenfolgen konvertiert. Die Zeichenfolgen werden durch den Eigenschaftswertnamen dargestellt. Export-CSV -IncludeTypeInformation exportiert die Methoden des Objekts nicht.

Die CSV-Zeichenfolgen werden wie folgt ausgegeben:

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

Beginnend mit PowerShell 6.0 ist das Standardverhalten Export-CSV , dass die #TYPE Informationen nicht in die CSV- und NoTypeInformation eingeschlossen werden. IncludeTypeInformation kann verwendet werden, um die #TYPE Informationen einzuschließen und das Standardverhalten Export-CSV vor PowerShell 6.0 zu emulieren.

Wenn Sie mehrere Objekte Export-CSVan übermitteln, Export-CSV organisiert die Datei basierend auf den Eigenschaften des ersten objekts, das Sie übermitteln. Wenn die übrigen Objekte nicht über eine der angegebenen Eigenschaften verfügen, ist der Eigenschaftswert dieses Objekts NULL, was durch zwei aufeinander folgende Kommas dargestellt wird. Wenn die übrigen Objekte zusätzliche Eigenschaften aufweisen, sind diese Eigenschaftenwerte nicht in der Datei enthalten.

Sie können das Import-Csv Cmdlet verwenden, um Objekte aus den CSV-Zeichenfolgen in den Dateien neu zu erstellen. Die resultierenden Objekte sind CSV-Versionen der ursprünglichen Objekte, die aus den Zeichenfolgendarstellungen der Eigenschaftswerte bestehen und die keine Methoden haben.

Die ConvertTo-Csv Und ConvertFrom-Csv Cmdlets konvertieren Objekte in CSV-Zeichenfolgen und aus CSV-Zeichenfolgen. Export-CSV ist identisch mit ConvertTo-CSVder Ausnahme, dass die CSV-Zeichenfolgen in einer Datei gespeichert werden.