Export-Csv

Hiermee worden objecten geconverteerd naar een reeks tekenreeksen met door tekens gescheiden waarden (CSV) en worden de tekenreeksen opgeslagen in een bestand.

Syntax

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

Description

De Export-CSV cmdlet maakt een CSV-bestand van de objecten die u verzendt. Elk object is een rij met een door tekens gescheiden lijst met de eigenschapswaarden van het object. U kunt de Export-CSV cmdlet gebruiken om spreadsheets te maken en gegevens te delen met programma's die CSV-bestanden als invoer accepteren.

Maak objecten niet op voordat u ze naar de Export-CSV cmdlet verzendt. Als Export-CSV er opgemaakte objecten worden ontvangen, bevat het CSV-bestand de indelingseigenschappen in plaats van de objecteigenschappen. Als u alleen geselecteerde eigenschappen van een object wilt exporteren, gebruikt u de Select-Object cmdlet.

Voorbeelden

Voorbeeld 1: Proceseigenschappen exporteren naar een CSV-bestand

In dit voorbeeld worden procesobjecten met specifieke eigenschappen geselecteerd en worden de objecten geëxporteerd naar een CSV-bestand.

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

De Get-Process cmdlet haalt de procesobjecten op. De parameter Name filtert de uitvoer zodat alleen de WmiPrvSE-procesobjecten worden opgenomen. De procesobjecten worden naar de Select-Object cmdlet verzonden. Select-Object gebruikt de parameter Eigenschap om een subset van procesobjecteigenschappen te selecteren. De procesobjecten worden naar de Export-Csv cmdlet verzonden. Export-Csv converteert de procesobjecten naar een reeks CSV-tekenreeksen. De parameter Path geeft aan dat het WmiData.csv bestand wordt opgeslagen in de huidige map. De parameter NoTypeInformation verwijdert de #TYPE informatieheader uit de CSV-uitvoer en is niet vereist in PowerShell 6. De Import-Csv cmdlet gebruikt de parameter Path om het bestand weer te geven dat zich in de huidige map bevindt.

Voorbeeld 2: Processen exporteren naar een bestand met door komma's gescheiden bestanden

In dit voorbeeld worden procesobjecten opgehaald en worden de objecten geëxporteerd naar een CSV-bestand.

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", ...

Met de Get-Process cmdlet worden procesobjecten opgehaald. De procesobjecten worden naar de Export-Csv cmdlet verzonden. Export-Csv converteert de procesobjecten naar een reeks CSV-tekenreeksen. De parameter Path geeft aan dat het Processes.csv bestand wordt opgeslagen in de huidige map. De parameter NoTypeInformation verwijdert de #TYPE informatieheader uit de CSV-uitvoer en is niet vereist in PowerShell 6. De Get-Content cmdlet gebruikt de parameter Path om het bestand weer te geven dat zich in de huidige map bevindt.

Voorbeeld 3: Processen exporteren naar een door puntkomma's gescheiden bestand

In dit voorbeeld worden procesobjecten opgehaald en worden de objecten geëxporteerd naar een bestand met een puntkommascheidingsteken.

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"; ...

Met de Get-Process cmdlet worden procesobjecten opgehaald. De procesobjecten worden naar de Export-Csv cmdlet verzonden. Export-Csv converteert de procesobjecten naar een reeks CSV-tekenreeksen. De parameter Path geeft aan dat het Processes.csv bestand wordt opgeslagen in de huidige map. De parameter Scheidingsteken geeft een puntkomma op om de tekenreekswaarden te scheiden. De parameter NoTypeInformation verwijdert de #TYPE informatieheader uit de CSV-uitvoer en is niet vereist in PowerShell 6. De Get-Content cmdlet gebruikt de parameter Path om het bestand weer te geven dat zich in de huidige map bevindt.

Voorbeeld 4: Processen exporteren met behulp van het lijstscheidingsteken van de huidige cultuur

In dit voorbeeld worden procesobjecten opgehaald en worden de objecten geëxporteerd naar een bestand. Het scheidingsteken is het lijstscheidingsteken van de huidige cultuur.

(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", ...

De Get-Culture cmdlet maakt gebruik van de geneste eigenschappen TextInfo en ListSeparator en geeft het standaardlijstscheidingsteken van de huidige cultuur weer. Met de Get-Process cmdlet worden procesobjecten opgehaald. De procesobjecten worden naar de Export-Csv cmdlet verzonden. Export-Csv converteert de procesobjecten naar een reeks CSV-tekenreeksen. De parameter Path geeft aan dat het Processes.csv bestand wordt opgeslagen in de huidige map. De parameter UseCulture gebruikt het standaardlijstscheidingsteken van de huidige cultuur als scheidingsteken. De parameter NoTypeInformation verwijdert de #TYPE informatieheader uit de CSV-uitvoer en is niet vereist in PowerShell 6. De Get-Content cmdlet gebruikt de parameter Path om het bestand weer te geven dat zich in de huidige map bevindt.

Voorbeeld 5: Processen exporteren met typegegevens

In dit voorbeeld wordt uitgelegd hoe u de #TYPE headergegevens in een CSV-bestand opneemt. De #TYPE-header is de standaardversie van versies vóór 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", ...

Met de Get-Process cmdlet worden procesobjecten opgehaald. De procesobjecten worden naar de Export-Csv cmdlet verzonden. Export-Csv converteert de procesobjecten naar een reeks CSV-tekenreeksen. De parameter Path geeft aan dat het Processes.csv bestand wordt opgeslagen in de huidige map. IncludeTypeInformation bevat de #TYPE informatieheader in de CSV-uitvoer. De Get-Content cmdlet gebruikt de parameter Path om het bestand weer te geven dat zich in de huidige map bevindt.

Voorbeeld 6: Objecten exporteren en toevoegen aan een CSV-bestand

In dit voorbeeld wordt beschreven hoe u objecten naar een CSV-bestand exporteert en de parameter Toevoegen gebruikt om objecten toe te voegen aan een bestaand bestand.

$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"

De Get-Service cmdlet haalt serviceobjecten op. De parameter DisplayName retourneert services die het woord Toepassing bevatten. De serviceobjecten worden via de pijplijn naar de Select-Object cmdlet verzonden. Select-Object gebruikt de parameter Eigenschap om de eigenschappen DisplayName en Status op te geven. De $AppService variabele slaat de objecten op.

De $AppService objecten worden via de pijplijn naar de Export-Csv cmdlet verzonden. Export-Csv converteert de serviceobjecten naar een reeks CSV-tekenreeksen. De parameter Path geeft aan dat het Services.csv bestand wordt opgeslagen in de huidige map. De parameter NoTypeInformation verwijdert de #TYPE informatieheader uit de CSV-uitvoer en is niet vereist in PowerShell 6. De Get-Content cmdlet gebruikt de parameter Path om het bestand weer te geven dat zich in de huidige map bevindt.

De Get-Service en Select-Object cmdlets worden herhaald voor services die het woord Windows bevatten. De $WinService variabele slaat de serviceobjecten op. De Export-Csv cmdlet gebruikt de parameter Toevoegen om op te geven dat de $WinService objecten worden toegevoegd aan het bestaande Services.csv bestand. De Get-Content cmdlet wordt herhaald om het bijgewerkte bestand weer te geven dat de toegevoegde gegevens bevat.

Voorbeeld 7: Cmdlet formatteren in een pijplijn maakt onverwachte resultaten

In dit voorbeeld ziet u waarom het belangrijk is om geen indelings-cmdlet in een pijplijn te gebruiken. Wanneer onverwachte uitvoer wordt ontvangen, moet u problemen met de syntaxis van de pijplijn oplossen.

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",,,,,

De Get-Date cmdlet haalt het DateTime-object op. Het object wordt naar de pijplijn verzonden naar de Select-Object cmdlet. Select-Object gebruikt de parameter Eigenschap om een subset van objecteigenschappen te selecteren. Het object wordt naar de pijplijn verzonden naar de Export-Csv cmdlet. Export-Csv converteert het object naar een CSV-indeling. De parameter Path geeft aan dat het DateTime.csv bestand wordt opgeslagen in de huidige map. De parameter NoTypeInformation verwijdert de #TYPE informatieheader uit de CSV-uitvoer en is niet vereist in PowerShell 6. De Get-Content cmdlet gebruikt de parameter Path om het CSV-bestand weer te geven dat zich in de huidige map bevindt.

Wanneer de Format-Table cmdlet in de pijplijn wordt gebruikt om eigenschappen te selecteren, worden onverwachte resultaten ontvangen. Format-Table verzendt tabelopmaakobjecten omlaag in de pijplijn naar de Export-Csv cmdlet in plaats van het DateTime-object . Export-Csv converteert de tabelindelingsobjecten naar een reeks CSV-tekenreeksen. De Get-Content cmdlet geeft het CSV-bestand weer dat de tabelindelingsobjecten bevat.

Voorbeeld 8: de parameter Force gebruiken om alleen-lezenbestanden te overschrijven

In dit voorbeeld wordt een leeg bestand met het kenmerk Alleen-lezen gemaakt en wordt de parameter Force gebruikt om het bestand bij te werken.

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"; ...

De New-Item cmdlet gebruikt de parameters Path en ItemType om het ReadOnly.csv bestand in de huidige map te maken. De Set-ItemProperty cmdlet gebruikt de parameters Naam en Waarde om de eigenschap IsReadOnly van het bestand te wijzigen in waar. Met de Get-Process cmdlet worden procesobjecten opgehaald. De procesobjecten worden naar de Export-Csv cmdlet verzonden. Export-Csv converteert de procesobjecten naar een reeks CSV-tekenreeksen. De parameter Path geeft aan dat het ReadOnly.csv bestand wordt opgeslagen in de huidige map. De parameter NoTypeInformation verwijdert de #TYPE informatieheader uit de CSV-uitvoer en is niet vereist in PowerShell 6. In de uitvoer ziet u dat het bestand niet is geschreven omdat de toegang wordt geweigerd.

De parameter Force wordt toegevoegd aan de Export-Csv cmdlet om te forceren dat de export naar het bestand schrijft. De Get-Content cmdlet gebruikt de parameter Path om het bestand weer te geven dat zich in de huidige map bevindt.

Voorbeeld 9: de parameter Force gebruiken met Toevoegen

In dit voorbeeld ziet u hoe u de parameters Force en Append gebruikt. Wanneer deze parameters worden gecombineerd, kunnen niet-overeenkomende objecteigenschappen naar een CSV-bestand worden geschreven.

$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

Met een expressie maakt u het PSCustomObject met de eigenschappen Naam en Versie. De waarden worden opgeslagen in de $Content variabele. De $Content variabele wordt via de pijplijn naar de Export-Csv cmdlet verzonden. Export-Csv gebruikt de parameter Path en slaat het ParmFile.csv bestand op in de huidige map. De parameter NoTypeInformation verwijdert de #TYPE informatieheader uit de CSV-uitvoer en is niet vereist in PowerShell 6.

Een andere expressie maakt een PSCustomObject met de eigenschappen Name en Edition . De waarden worden opgeslagen in de $AdditionalContent variabele. De $AdditionalContent variabele wordt via de pijplijn naar de Export-Csv cmdlet verzonden. De parameter Toevoegen wordt gebruikt om de gegevens aan het bestand toe te voegen. De toevoeg mislukt omdat er een eigenschapsnaam niet overeenkomt tussen versie en editie.

De Export-Csv parameter Force van de cmdlet wordt gebruikt om de export af te dwingen naar het bestand te schrijven. De eigenschap Edition wordt verwijderd. De Import-Csv cmdlet gebruikt de parameter Path om het bestand weer te geven dat zich in de huidige map bevindt.

Voorbeeld 10: Exporteren naar CSV met aanhalingstekens rond twee kolommen

In dit voorbeeld wordt een DateTime-object geconverteerd naar een CSV-tekenreeks.

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

Voorbeeld 11: Exporteren naar CSV met alleen aanhalingstekens wanneer dat nodig is

In dit voorbeeld wordt een DateTime-object geconverteerd naar een CSV-tekenreeks.

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

Voorbeeld 12: Hashtables converteren naar CSV

Wanneer u hashtabellen naar CSV exporteert, worden in PowerShell 7.2 en hoger de sleutels van de eerste hashtabel geserialiseerd en gebruikt als headers in de uitvoer van het CSV-bestand.

$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"

Voorbeeld 13: Hashtables converteren naar CSV met aanvullende eigenschappen

Wanneer u in PowerShell 7.2 en hoger een hashtabel exporteert waaraan aanvullende eigenschappen zijn toegevoegd Add-Member of Select-Object de aanvullende eigenschappen ook worden toegevoegd als koptekst in het CSV-bestand.

$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"

Elke hashtabel heeft een eigenschap met de naam ExtraProp toegevoegd Add-Member en vervolgens geëxporteerd naar CSV. U kunt zien ExtraProp dat het nu een header is in de uitvoer van het CSV-bestand.

Als een toegevoegde eigenschap dezelfde naam heeft als een sleutel uit de hashtabel, heeft de sleutel voorrang en wordt alleen de sleutel geëxporteerd naar CSV.

Parameters

-Append

Gebruik deze parameter zodat Export-CSV CSV-uitvoer wordt toegevoegd aan het einde van het opgegeven bestand. Zonder deze parameter Export-CSV vervangt u de bestandsinhoud zonder waarschuwing.

Deze parameter is geïntroduceerd in Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

Hiermee wordt u gevraagd om bevestiging voordat u de cmdlet uitvoert.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Delimiter

Hiermee geeft u een scheidingsteken op om de eigenschapswaarden te scheiden. De standaardwaarde is een komma (,). Voer een teken in, zoals een dubbele punt (:). Als u een puntkomma (;) wilt opgeven, plaatst u deze tussen aanhalingstekens.

Type:Char
Position:1
Default value:comma (,)
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Encoding

Hiermee geeft u de codering voor het geëxporteerde CSV-bestand. De standaardwaarde is utf8NoBOM.

De acceptabele waarden voor deze parameter zijn als volgt:

  • ascii: gebruikt de codering voor de ASCII-tekenset (7-bits).
  • bigendianunicode: Codeert in UTF-16-indeling met behulp van de bytevolgorde big-endian.
  • bigendianutf32: Codeert in UTF-32-indeling met behulp van de bytevolgorde big-endian.
  • oem: maakt gebruik van de standaardcodering voor MS-DOS en consoleprogramma's.
  • unicode: Codeert in UTF-16-indeling met behulp van de bytevolgorde little-endian.
  • utf7: Codeert in UTF-7-indeling.
  • utf8: Codeert in UTF-8-indeling.
  • utf8BOM: Codeert in UTF-8-indeling met Byte Order Mark (BOM)
  • utf8NoBOM: Codeert in UTF-8-indeling zonder Byte Order Mark (BOM)
  • utf32: Codeert in UTF-32-indeling.

Vanaf PowerShell 6.2 staat de coderingsparameter ook numerieke id's toe van geregistreerde codepagina's (zoals -Encoding 1251) of tekenreeksnamen van geregistreerde codepagina's (zoals-Encoding "windows-1251"). Zie de .NET-documentatie voor Encoding.CodePage voor meer informatie.

Notitie

UTF-7* wordt niet meer aanbevolen om te gebruiken. Vanaf PowerShell 7.1 wordt een waarschuwing geschreven als u opgeeft utf7 voor de coderingsparameter .

Type:Encoding
Accepted values:ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
Position:Named
Default value:UTF8NoBOM
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

Met deze parameter kunt u Export-Csv bestanden overschrijven met het kenmerk Alleen-lezen .

Wanneer geforceerde en toevoegparameters worden gecombineerd, kunnen objecten met niet-overeenkomende eigenschappen worden geschreven naar een CSV-bestand. Alleen de eigenschappen die overeenkomen, worden naar het bestand geschreven. De niet-overeenkomende eigenschappen worden verwijderd.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-IncludeTypeInformation

Wanneer deze parameter wordt gebruikt, bevat #TYPE de eerste regel van de CSV-uitvoer de volledige gekwalificeerde naam van het objecttype. Bijvoorbeeld: #TYPE System.Diagnostics.Process.

Deze parameter is geïntroduceerd in PowerShell 6.0.

Type:SwitchParameter
Aliases:ITI
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Hiermee geeft u de objecten die moeten worden geëxporteerd als CSV-tekenreeksen. Voer een variabele in die de objecten bevat of typ een opdracht of expressie waarmee de objecten worden opgehaald. U kunt objecten ook doorsluisen naar Export-CSV.

Type:PSObject
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-LiteralPath

Hiermee geeft u het pad naar het CSV-uitvoerbestand. In tegenstelling tot Path wordt de waarde van de parameter LiteralPath precies gebruikt zoals deze is getypt. Er worden geen tekens geïnterpreteerd als jokertekens. Als het pad escapetekens bevat, gebruikt u enkele aanhalingstekens. Enkele aanhalingstekens geven PowerShell aan dat er geen tekens als escapereeksen moeten worden geïnterpreteerd.

Type:String
Aliases:PSPath, LP
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-NoClobber

Gebruik deze parameter zodat Export-CSV een bestaand bestand niet wordt overschreven. Als het bestand in het opgegeven pad bestaat, Export-CSV overschrijft het bestand standaard zonder waarschuwing.

Type:SwitchParameter
Aliases:NoOverwrite
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-NoTypeInformation

Hiermee verwijdert u de #TYPE informatieheader uit de uitvoer. Deze parameter werd de standaardwaarde in PowerShell 6.0 en is opgenomen voor achterwaartse compatibiliteit.

Type:SwitchParameter
Aliases:NTI
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

Een vereiste parameter waarmee de locatie wordt opgegeven voor het opslaan van het CSV-uitvoerbestand.

Type:String
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-QuoteFields

Hiermee geeft u de namen op van de kolommen die moeten worden geciteerd. Wanneer deze parameter wordt gebruikt, worden alleen de opgegeven kolommen geciteerd. Deze parameter is toegevoegd in PowerShell 7.0.

Type:String[]
Aliases:QF
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UseCulture

Hiermee gebruikt u het lijstscheidingsteken voor de huidige cultuur als het scheidingsteken voor items. Gebruik de volgende opdracht om het lijstscheidingsteken voor een cultuur te vinden: (Get-Culture).TextInfo.ListSeparator

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UseQuotes

Hiermee geeft u op wanneer aanhalingstekens worden gebruikt in de CSV-bestanden. Mogelijke waarden zijn:

  • Nooit - citeer niets
  • Altijd - alles citeren (standaardgedrag)
  • AsNeeded: alleen aanhalingstekens met een scheidingsteken, dubbel aanhalingsteken of nieuwlijnteken

Deze parameter is toegevoegd in PowerShell 7.0.

Type:Microsoft.PowerShell.Commands.BaseCsvWritingCommand+QuoteKind
Aliases:UQ
Position:Named
Default value:Always
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Hiermee voorkomt u dat de cmdlet wordt verwerkt of wijzigingen aanbrengt. In de uitvoer ziet u wat er zou gebeuren als de cmdlet werd uitgevoerd.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Invoerwaarden

PSObject

U kunt elk object met een ETS-adapter (Extended Type System) doorsluisen naar deze cmdlet.

Uitvoerwaarden

None

Deze cmdlet retourneert geen uitvoer.

Notities

PowerShell bevat de volgende aliassen voor Export-Csv:

  • Alle platforms:
    • epcsv

De Export-CSV cmdlet converteert de objecten die u verzendt naar een reeks CSV-tekenreeksen en slaat deze op in het opgegeven tekstbestand. U kunt Export-CSV -IncludeTypeInformation objecten opslaan in een CSV-bestand en vervolgens de Import-Csv cmdlet gebruiken om objecten te maken op basis van de tekst in het CSV-bestand.

In het CSV-bestand wordt elk object vertegenwoordigd door een door tekens gescheiden lijst met de eigenschapswaarden van het object. De eigenschapswaarden worden geconverteerd naar tekenreeksen met behulp van de methode ToString(). De tekenreeksen worden vertegenwoordigd door de naam van de eigenschapswaarde. Export-CSV -IncludeTypeInformation exporteert de methoden van het object niet.

De CSV-tekenreeksen worden als volgt uitgevoerd:

  • Als IncludeTypeInformation wordt gebruikt, bevat de eerste tekenreeks de #TYPE informatiekop, gevolgd door de volledig gekwalificeerde naam van het objecttype. Bijvoorbeeld #TYPE System.Diagnostics.Process.
  • Als IncludeTypeInformation niet wordt gebruikt, bevat de eerste tekenreeks de kolomkoppen. De kopteksten bevatten de eigenschapsnamen van het eerste object als een door tekens gescheiden lijst.
  • De resterende tekenreeksen bevatten door tekens gescheiden lijsten van de eigenschapswaarden van elk object.

Vanaf PowerShell 6.0 is het standaardgedrag Export-CSV om de #TYPE gegevens in het CSV-bestand niet op te nemen en NoTypeInformation wordt geïmpliceerd. IncludeTypeInformation kan worden gebruikt om de #TYPE Informatie op te nemen en het standaardgedrag van Export-CSV vóór PowerShell 6.0 te emuleren.

Wanneer u meerdere objecten naar Export-CSVverzendt, Export-CSV ordent u het bestand op basis van de eigenschappen van het eerste object dat u verzendt. Als de resterende objecten geen van de opgegeven eigenschappen hebben, is de eigenschapswaarde van dat object null, zoals vertegenwoordigd door twee opeenvolgende komma's. Als de resterende objecten aanvullende eigenschappen hebben, worden deze eigenschapswaarden niet opgenomen in het bestand.

U kunt de Import-Csv cmdlet gebruiken om objecten opnieuw te maken van de CSV-tekenreeksen in de bestanden. De resulterende objecten zijn CSV-versies van de oorspronkelijke objecten die bestaan uit tekenreeksweergaven van de eigenschapswaarden en geen methoden.

De ConvertTo-Csv en ConvertFrom-Csv cmdlets converteren objecten naar CSV-tekenreeksen en van CSV-tekenreeksen. Export-CSV is hetzelfde als ConvertTo-CSV, behalve dat de CSV-tekenreeksen in een bestand worden opgeslagen.