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
U kunt elk object met een ETS-adapter (Extended Type System) doorspeppen naar ConvertTo-CSV
.
Uitvoerwaarden
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.