ConvertTo-Csv
Converteert .NET-objecten naar een reeks tekenreeksen met door tekens gescheiden waarden (CSV).
Syntaxis
ConvertTo-Csv
[-InputObject] <psobject>
[[-Delimiter] <char>]
[-NoTypeInformation]
[<CommonParameters>]
ConvertTo-Csv
[-InputObject] <psobject>
[-UseCulture]
[-NoTypeInformation]
[<CommonParameters>]
Description
De ConvertTo-CSV
cmdlet retourneert een reeks tekenreeksen met door tekens gescheiden waarden (CSV) die de objecten vertegenwoordigen die u verzendt. Vervolgens kunt u de cmdlet ConvertFrom-Csv
gebruiken om objecten uit de CSV-tekenreeksen opnieuw te maken. De objecten die vanuit CSV worden geconverteerd, zijn tekenreekswaarden van de oorspronkelijke objecten die eigenschapswaarden en geen methoden bevatten.
U kunt de cmdlet Export-Csv
gebruiken om objecten te converteren naar CSV-tekenreeksen.
Export-CSV
lijkt op ConvertTo-CSV
, behalve dat de CSV-tekenreeksen in een bestand worden opgeslagen.
De ConvertTo-CSV
cmdlet heeft parameters om een ander scheidingsteken dan een komma op te geven of de huidige cultuur te gebruiken als scheidingsteken.
Voorbeelden
Voorbeeld 1: Een object converteren naar CSV
In dit voorbeeld wordt een Process-object 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 naar de pijplijn verzonden naar de cmdlet ConvertTo-CSV
. Met de cmdlet ConvertTo-CSV
wordt het object geconverteerd 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"
De cmdlet Get-Date
haalt het DateTime--object op en slaat het op in de $Date
variabele. De cmdlet ConvertTo-Csv
converteert het DateTime--object naar tekenreeksen. De parameter InputObject maakt gebruik van het DateTime-object dat is opgeslagen in de variabele $Date
. De parameter Scheidingsteken geeft een puntkomma op om de tekenreekswaarden 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 cmdlet Get-Culture
maakt gebruik van de geneste eigenschappen TextInfo en ListSeparator en geeft het standaardlijstscheidingsteken van de huidige cultuur weer. De cmdlet Get-WinEvent
haalt de gebeurtenislogboekobjecten op en gebruikt de parameter LogName om de naam van het logboekbestand op te geven. De gebeurtenislogboekobjecten worden naar de pijplijn verzonden naar de ConvertTo-Csv
cmdlet. De cmdlet ConvertTo-Csv
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 op om de eigenschapswaarden in CSV-tekenreeksen 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 enkele aanhalingstekens.
Type: | Char |
Position: | 1 |
Default value: | comma (,) |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-InputObject
Hiermee geeft u de objecten 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 doorslangen naar ConvertTo-CSV
.
Type: | PSObject |
Position: | 0 |
Default value: | None |
Vereist: | True |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | 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 |
Aliassen: | NTI |
Position: | Named |
Default value: | False |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | 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 |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
Invoerwaarden
U kunt elk object met een ETS-adapter (Extended Type System) doorsluisen naar deze cmdlet.
Uitvoerwaarden
Deze cmdlet retourneert een of meer tekenreeksen die elk geconverteerd object vertegenwoordigen.
Notities
In CSV-indeling wordt elk object vertegenwoordigd door een door tekens gescheiden lijst met de eigenschapswaarde. De eigenschapswaarden worden geconverteerd naar tekenreeksen met behulp van de ToString() methode 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 informatiekop, 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 headers bevatten de eigenschapsnamen van het eerste object als een door komma's gescheiden lijst.
- De resterende tekenreeksen bevatten door komma's gescheiden lijsten van de eigenschapswaarden van elk object.
Wanneer u meerdere objecten naar ConvertTo-CSV
verzendt, ConvertTo-CSV
de tekenreeksen ordenen 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 genegeerd.