Delen via


ConvertTo-Csv

Hiermee worden objecten geconverteerd naar een reeks tekenreeksen met door komma's gescheiden waarden (CSV).

Syntax

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

Description

De ConvertTo-CSV cmdlet retourneert een reeks csv-tekenreeksen (door komma's gescheiden waarden) die de objecten vertegenwoordigen die u verzendt. Vervolgens kunt u de ConvertFrom-Csv cmdlet gebruiken om objecten van de CSV-tekenreeksen opnieuw te maken. De objecten die vanuit CSV zijn geconverteerd, zijn tekenreekswaarden van de oorspronkelijke objecten die eigenschapswaarden en geen methoden bevatten.

U kunt de Export-Csv cmdlet gebruiken om objecten te converteren naar CSV-tekenreeksen. Export-CSV is vergelijkbaar met ConvertTo-CSV, behalve dat de CSV-tekenreeksen in een bestand worden opgeslagen.

De ConvertTo-CSV cmdlet heeft parameters voor het opgeven van een ander scheidingsteken dan een komma of het gebruik van de huidige cultuur als het scheidingsteken.

Voorbeelden

Voorbeeld 1: Een object converteren naar CSV

In dit voorbeeld wordt een procesobject geconverteerd naar een CSV-tekenreeks.

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

De Get-Process cmdlet haalt het object Process op en gebruikt de parameter Name om het PowerShell-proces op te geven. Het procesobject wordt via de pijplijn naar de ConvertTo-CSV cmdlet verzonden. De ConvertTo-CSV cmdlet converteert het object naar CSV-tekenreeksen. De parameter NoTypeInformation verwijdert de #TYPE informatieheader uit de CSV-uitvoer.

Voorbeeld 2: Een DateTime-object converteren naar CSV

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

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

Met Get-Date de cmdlet wordt het object DateTime opgehaald en opgeslagen in de $Date variabele. De ConvertTo-Csv cmdlet converteert het object DateTime naar tekenreeksen. De parameter InputObject maakt gebruik van het object DateTime dat is opgeslagen in de $Date variabele. De parameter Scheidingsteken geeft een puntkomma op om de tekenreekswaarden van elkaar te scheiden. De parameter NoTypeInformation verwijdert de #TYPE informatieheader uit de CSV-uitvoer.

Voorbeeld 3: het PowerShell-gebeurtenislogboek converteren naar CSV

In dit voorbeeld wordt het Windows-gebeurtenislogboek voor PowerShell geconverteerd naar een reeks CSV-tekenreeksen.

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

De Get-Culture cmdlet gebruikt de geneste eigenschappen TextInfo en ListSeparator en geeft het standaardlijstscheidingsteken van de huidige cultuur weer. De Get-WinEvent cmdlet haalt de gebeurtenislogboekobjecten op en gebruikt de parameter LogName om de naam van het logboekbestand op te geven. De gebeurtenislogboekobjecten worden via de pijplijn naar de ConvertTo-Csv cmdlet verzonden. De ConvertTo-Csv cmdlet converteert de gebeurtenislogboekobjecten naar een reeks CSV-tekenreeksen. De parameter UseCulture gebruikt het standaardlijstscheidingsteken van de huidige cultuur als scheidingsteken. De parameter NoTypeInformation verwijdert de #TYPE informatieheader uit de CSV-uitvoer.

Parameters

-Delimiter

Hiermee geeft u het scheidingsteken voor het scheiden van de eigenschapswaarden in CSV-tekenreeksen. De standaardwaarde is een komma (,). Voer een teken in, zoals een dubbele punt (:). Als u een puntkomma () wilt opgeven,; plaatst u deze tussen enkele aanhalingstekens.

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

-InputObject

Hiermee geeft u de objecten op die worden geconverteerd naar 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 ConvertTo-CSV.

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

-NoTypeInformation

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

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

-UseCulture

Gebruikt het lijstscheidingsteken voor de huidige cultuur als het itemscheidingsteken. Gebruik de volgende opdracht om het lijstscheidingsteken voor een cultuur te vinden: (Get-Culture).TextInfo.ListSeparator.

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

Invoerwaarden

PSObject

U kunt elk object met een ETS-adapter (Extended Type System) doorspeppen naar ConvertTo-CSV.

Uitvoerwaarden

String

De CSV-uitvoer wordt geretourneerd als een verzameling tekenreeksen.

Notities

In CSV-indeling wordt elk object vertegenwoordigd door een door komma's gescheiden lijst met de eigenschapswaarde. De eigenschapswaarden worden geconverteerd naar tekenreeksen met behulp van de methode ToString() van het object. De tekenreeksen worden vertegenwoordigd door de naam van de eigenschapswaarde. ConvertTo-CSV exporteert de methoden van het object niet.

De CSV-tekenreeksen worden als volgt uitgevoerd:

  • Standaard bevat de eerste tekenreeks de #TYPE informatieheader, gevolgd door de volledig gekwalificeerde naam van het objecttype. bijvoorbeeld #TYPE System.Diagnostics.Process.
  • Als NoTypeInformation wordt gebruikt, bevat de eerste tekenreeks de kolomkoppen. De kopteksten bevatten de eigenschapsnamen van het eerste object als een door komma's gescheiden lijst.
  • De resterende tekenreeksen bevatten door komma's gescheiden lijsten met de eigenschapswaarden van elk object.

Wanneer u meerdere objecten verzendt naar ConvertTo-CSV, ConvertTo-CSV worden de tekenreeksen geordeerd op basis van de eigenschappen van het eerste object dat u verzendt. Als de resterende objecten niet een van de opgegeven eigenschappen hebben, is de eigenschapswaarde van dat object Null, zoals aangegeven door twee opeenvolgende komma's. Als de resterende objecten aanvullende eigenschappen hebben, worden deze eigenschapswaarden genegeerd.