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 Cmdlet Export-CSV
erstellt eine CSV-Datei der von Ihnen übermittelten Objekte. Jedes Objekt ist eine Zeile, die eine durch Zeichen getrennte Liste der Eigenschaftswerte des Objekts enthält. Sie können das Cmdlet Export-CSV
verwenden, um Tabellenkalkulationen zu erstellen und Daten mit Programmen zu teilen, die CSV-Dateien als Eingabe akzeptieren.
Formatieren Sie keine Objekte, bevor Sie sie an das Cmdlet Export-CSV
senden. Wenn Export-CSV
formatierte Objekte empfängt, enthält die CSV-Datei die Formateigenschaften anstelle der Objekteigenschaften. Verwenden Sie das cmdlet Select-Object
, um nur ausgewählte Eigenschaften eines Objekts zu exportieren.
Beispiele
Beispiel 1: Exportieren von Prozesseigenschaften in eine CSV-Datei
In diesem Beispiel werden Process Objekte 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 Cmdlet Get-Process
ruft die Process-Objekte ab. Der Name Parameter filtert die Ausgabe so, dass nur die WmiPrvSE-Prozessobjekte enthalten sind. Die Prozessobjekte werden an das Cmdlet Select-Object
weitergeleitet.
Select-Object
verwendet den Parameter Property, um eine Teilmenge von Prozessobjekteigenschaften auszuwählen. Die Prozessobjekte werden an das Cmdlet Export-Csv
weitergeleitet.
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 NoTypeInformation Parameter entfernt den #TYPE Informationsheader aus der CSV-Ausgabe und ist in PowerShell 6 nicht erforderlich. Das Cmdlet Import-Csv
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 wird Process -Objekte und exportiert die Objekte in eine CSV-Datei.
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 cmdlet Get-Process
ruft Process-Objekte ab. Die Prozessobjekte werden an das Cmdlet Export-Csv
weitergeleitet.
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 NoTypeInformation Parameter entfernt den #TYPE Informationsheader aus der CSV-Ausgabe und ist in PowerShell 6 nicht erforderlich. Das Cmdlet Get-Content
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 wird Process -Objekte und exportiert die Objekte mit einem Semikolontrennzeichen in eine Datei.
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 cmdlet Get-Process
ruft Process-Objekte ab. Die Prozessobjekte werden an das Cmdlet Export-Csv
weitergeleitet.
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 NoTypeInformation Parameter entfernt den #TYPE Informationsheader aus der CSV-Ausgabe und ist in PowerShell 6 nicht erforderlich. Das Cmdlet Get-Content
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 wird Process -Objekte und exportiert die Objekte in eine Datei. 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 Cmdlet Get-Culture
verwendet die geschachtelten Eigenschaften TextInfo- und ListSeparator- und zeigt das Standardlistentrennzeichen der aktuellen Kultur an. Das cmdlet Get-Process
ruft Process-Objekte ab. Die Prozessobjekte werden an das Cmdlet Export-Csv
weitergeleitet.
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 UseCulture verwendet das Standardlistentrennzeichen der aktuellen Kultur als Trennzeichen. Der NoTypeInformation Parameter entfernt den #TYPE Informationsheader aus der CSV-Ausgabe und ist in PowerShell 6 nicht erforderlich. Das Cmdlet Get-Content
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 cmdlet Get-Process
ruft Process-Objekte ab. Die Prozessobjekte werden an das Cmdlet Export-Csv
weitergeleitet.
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. Die IncludeTypeInformation- enthält den #TYPE Informationsheader in der CSV-Ausgabe. Das Cmdlet Get-Content
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 Sie Objekte in eine CSV-Datei exportieren und den Parameter Append verwenden, um einer vorhandenen Datei Objekte hinzuzufügen.
$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 cmdlet Get-Service
ruft Dienstobjekte ab. Der DisplayName Parameter gibt Dienste zurück, die das Wort "Anwendung" enthalten. Die Dienstobjekte werden an das Cmdlet Select-Object
weitergeleitet.
Select-Object
verwendet den Parameter Property, um die eigenschaften DisplayName und Status anzugeben. Die $AppService
Variable speichert die Objekte.
Die $AppService
Objekte werden an das Cmdlet Export-Csv
weitergeleitet.
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 NoTypeInformation Parameter entfernt den #TYPE Informationsheader aus der CSV-Ausgabe und ist in PowerShell 6 nicht erforderlich. Das Cmdlet Get-Content
verwendet den Parameter Path, um die Datei im aktuellen Verzeichnis anzuzeigen.
Die Cmdlets Get-Service
und Select-Object
werden für Dienste wiederholt, die das Wort Windows enthalten. Die $WinService
Variable speichert die Dienstobjekte. Das cmdlet Export-Csv
verwendet den Parameter Append, um anzugeben, dass die $WinService
Objekte der vorhandenen Services.csv
Datei hinzugefügt werden. Das Cmdlet Get-Content
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 cmdlet Get-Date
ruft das DateTime-Objekt ab. Das Objekt wird an das Cmdlet Select-Object
weitergeleitet.
Select-Object
verwendet den Parameter Property, um eine Teilmenge von Objekteigenschaften auszuwählen. Das Objekt wird an das Cmdlet Export-Csv
weitergeleitet.
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 NoTypeInformation Parameter entfernt den #TYPE Informationsheader aus der CSV-Ausgabe und ist in PowerShell 6 nicht erforderlich. Das Cmdlet Get-Content
verwendet den Parameter Path, um die CSV-Datei im aktuellen Verzeichnis anzuzeigen.
Wenn das Cmdlet Format-Table
innerhalb der Pipeline verwendet wird, um unerwartete Ergebnisse von Eigenschaften auszuwählen, werden unerwartete Ergebnisse empfangen.
Format-Table
sendet Tabellenformatobjekte an das Cmdlet Export-Csv
und nicht an das DateTime--Objekt.
Export-Csv
konvertiert die Tabellenformatobjekte in eine Reihe von CSV-Zeichenfolgen. Das Cmdlet Get-Content
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 cmdlet New-Item
verwendet die parameter Path und ItemType parameter, um die ReadOnly.csv
Datei im aktuellen Verzeichnis zu erstellen. Das Cmdlet Set-ItemProperty
verwendet die Parameter Name und Value Parameter, um die IsReadOnly- Eigenschaft der Datei in "true" zu ändern. Das cmdlet Get-Process
ruft Process-Objekte ab. Die Prozessobjekte werden an das Cmdlet Export-Csv
weitergeleitet.
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 NoTypeInformation Parameter 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 Cmdlet Export-Csv
hinzugefügt, um zu erzwingen, dass der Export in die Datei geschrieben wird. Das Cmdlet Get-Content
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 Name- und Version-Eigenschaften. Die Werte werden in der variablen $Content
gespeichert. Die variable $Content
wird an das Cmdlet Export-Csv
weitergeleitet.
Export-Csv
verwendet den Parameter Path und speichert die ParmFile.csv
Datei im aktuellen Verzeichnis. Der NoTypeInformation Parameter 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 variablen $AdditionalContent
gespeichert. Die variable $AdditionalContent
wird an das Cmdlet Export-Csv
weitergeleitet. Der Parameter "Append" wird verwendet, um die Daten zur Datei hinzuzufügen. Das Anfügen schlägt fehl, da zwischen Version und Edition-ein Eigenschaftsname nicht übereinstimmen.
Das Export-Csv
Cmdlet Parameter Force wird verwendet, um zu erzwingen, dass der Export in die Datei geschrieben wird. Die eigenschaft Edition wird verworfen. Das Cmdlet Import-Csv
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 mit Add-Member
oder Select-Object
zusätzliche Eigenschaften hinzugefügt wurde, werden die zusätzlichen Eigenschaften 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 mit dem Namen ExtraProp
, die von Add-Member
hinzugefügt und dann in CSV exportiert wird. Sie können sehen, ExtraProp
jetzt eine Kopfzeile in der CSV-Dateiausgabe ist.
Wenn eine hinzugefügte Eigenschaft den gleichen 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, damit Export-CSV
die CSV-Ausgabe am Ende der angegebenen Datei hinzufügt. Ohne diesen Parameter ersetzt Export-CSV
den Dateiinhalt ohne Warnung.
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
Fordert Sie vor dem Ausführen des Cmdlets zur Bestätigung auf.
Typ: | SwitchParameter |
Aliase: | cf |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Delimiter
Gibt ein Trennzeichen an, um die Eigenschaftswerte 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 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 mithilfe der Big-End-Byte-Reihenfolge. -
bigendianutf32
: Codiert im UTF-32-Format mithilfe der Big-End-Bytereihenfolge. -
oem
: Verwendet die Standardcodierung für MS-DOS- und Konsolenprogramme. -
unicode
: Codiert im UTF-16-Format mithilfe der Bytereihenfolge "little-endian". -
utf7
: Codiert im UTF-7-Format. -
utf8
: Codiert im UTF-8-Format. -
utf8BOM
: Codiert im UTF-8-Format mit Byte Order Mark (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 parameter Encoding auch numerische IDs registrierter Codeseiten (z. B. -Encoding 1251
) oder Zeichenfolgennamen registrierter Codeseiten (z. B. -Encoding "windows-1251"
). 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 parameter Encoding verwenden, um die numerische ID für die ANSI-Codeseite der aktuellen Kultur zu übergeben, ohne sie manuell angeben zu müssen.
Anmerkung
UTF-7* wird nicht mehr empfohlen zu verwenden. Ab PowerShell 7.1 wird eine Warnung geschrieben, wenn Sie utf7
für den parameter Encoding angeben.
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
Dieser Parameter ermöglicht Export-Csv
das Überschreiben von Dateien mit dem attribut Read Only.
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 die erste Zeile der CSV-Ausgabe #TYPE
gefolgt vom 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 Objekte an, die als CSV-Zeichenfolgen exportiert werden sollen. 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 Export-CSV
verrohren.
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 Pathwird der Wert des LiteralPath--Parameters genau so verwendet, wie er eingegeben wird. Es werden keine Zeichen als Wildcards 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, damit Export-CSV
keine vorhandene Datei überschreibt. Wenn die Datei im angegebenen Pfad vorhanden ist, überschreibt Export-CSV
die Datei standardmäßig ohne Warnung.
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. 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 |
-UseQuotes
Gibt an, wann Anführungszeichen in den CSV-Dateien verwendet werden. Mögliche Werte sind:
- 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
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 Cmdlet Export-CSV
konvertiert die Objekte, die Sie in eine Reihe von CSV-Zeichenfolgen übermitteln, und speichert sie in der angegebenen Textdatei. Mit Export-CSV -IncludeTypeInformation
können Sie Objekte in einer CSV-Datei speichern und dann das Cmdlet Import-Csv
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.
Ab PowerShell 6.0 besteht das Standardverhalten von Export-CSV
darin, die #TYPE Informationen nicht in die CSV einzuschließen, und NoTypeInformation- impliziert ist.
IncludeTypeInformation- können verwendet werden, um die #TYPE Informationen einzuschließen und das Standardverhalten von Export-CSV
vor PowerShell 6.0 zu emulieren.
Wenn Sie mehrere Objekte an Export-CSV
übermitteln, organisiert Export-CSV
die Datei basierend auf den Eigenschaften des ersten objekts, das Sie übermitteln. Wenn die verbleibenden Objekte keine der angegebenen Eigenschaften aufweisen, ist der Eigenschaftswert dieses Objekts null, wie durch zwei aufeinander folgende Kommas dargestellt. Wenn die verbleibenden Objekte zusätzliche Eigenschaften aufweisen, sind diese Eigenschaftswerte nicht in der Datei enthalten.
Sie können das Cmdlet Import-Csv
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 Zeichenfolgendarstellungen der Eigenschaftswerte und keine Methoden bestehen.
Die cmdlets ConvertTo-Csv
und ConvertFrom-Csv
konvertieren Objekte in CSV-Zeichenfolgen und aus CSV-Zeichenfolgen.
Export-CSV
ist identisch mit ConvertTo-CSV
, mit der Ausnahme, dass die CSV-Zeichenfolgen in einer Datei gespeichert werden.