ConvertTo-Csv
Konverterar .NET-objekt till en serie teckenavgränsade värdesträngar (CSV).
Syntax
ConvertTo-Csv
[-InputObject] <PSObject>
[-IncludeTypeInformation]
[-NoTypeInformation]
[<CommonParameters>]
ConvertTo-Csv
[-InputObject] <PSObject>
[[-Delimiter] <Char>]
[-IncludeTypeInformation]
[-NoTypeInformation]
[<CommonParameters>]
ConvertTo-Csv
[-InputObject] <PSObject>
[-UseCulture]
[-IncludeTypeInformation]
[-NoTypeInformation]
[<CommonParameters>]
Description
Cmdleten ConvertTo-CSV
returnerar en serie kommaavgränsade värdesträngar (CSV) som representerar de objekt som du skickar. Du kan sedan använda cmdleten ConvertFrom-Csv
för att återskapa objekt från CSV-strängarna. Objekten som konverteras från CSV är strängvärden för de ursprungliga objekten som innehåller egenskapsvärden och inga metoder.
Du kan använda cmdleten Export-Csv
för att konvertera objekt till CSV-strängar. Export-CSV
liknar ConvertTo-CSV
, förutom att csv-strängarna sparas i en fil.
Cmdleten ConvertTo-CSV
har parametrar för att ange en annan avgränsare än ett kommatecken eller använda den aktuella kulturen som avgränsare.
Exempel
Exempel 1: Konvertera ett objekt till CSV
Det här exemplet konverterar ett processobjekt till en CSV-sträng.
Get-Process -Name pwsh | ConvertTo-Csv -NoTypeInformation
"Name","SI","Handles","VM","WS","PM","NPM","Path","Parent","Company","CPU","FileVersion", ...
"pwsh","8","950","2204001161216","100925440","59686912","67104", ...
Cmdleten Get-Process
hämtar processobjektet och använder parametern Namn för att ange PowerShell-processen. Processobjektet skickas ned i pipelinen till cmdleten ConvertTo-CSV
. Cmdleten ConvertTo-CSV
konverterar objektet till CSV-strängar. Parametern NoTypeInformation tar bort #TYPE informationshuvudet från CSV-utdata och krävs inte i PowerShell 6.
Exempel 2: Konvertera ett DateTime-objekt till CSV
Det här exemplet konverterar ett DateTime-objekt till en CSV-sträng.
$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"
Cmdleten Get-Date
hämtar DateTime-objektet och sparar det i variabeln $Date
. Cmdleten ConvertTo-Csv
konverterar DateTime-objektet till strängar. Parametern InputObject använder DateTime-objektet som lagras i variabeln $Date
. Parametern Avgränsare anger ett semikolon som avgränsar strängvärdena. Parametern NoTypeInformation tar bort #TYPE informationshuvudet från CSV-utdata och krävs inte i PowerShell 6.
Exempel 3: Konvertera PowerShell-händelseloggen till CSV
Det här exemplet konverterar Windows-händelseloggen för PowerShell till en serie CSV-strängar.
(Get-Culture).TextInfo.ListSeparator
Get-WinEvent -LogName 'PowerShellCore/Operational' | ConvertTo-Csv -UseCulture -NoTypeInformation
,
"Message","Id","Version","Qualifiers","Level","Task","Opcode","Keywords","RecordId", ...
"Error Message = System error""4100","1",,"3","106","19","0","31716","PowerShellCore", ...
Cmdleten Get-Culture
använder de kapslade egenskaperna TextInfo och ListSeparator och visar den aktuella kulturens standardlistavgränsare. Cmdleten Get-WinEvent
hämtar händelseloggobjekten och använder logname-parametern för att ange loggfilens namn. Händelseloggobjekten skickas ned i pipelinen till cmdleten ConvertTo-Csv
. Cmdleten ConvertTo-Csv
konverterar händelseloggobjekten till en serie CSV-strängar. Parametern UseCulture använder den aktuella kulturens standardlistavgränsare som avgränsare. Parametern NoTypeInformation tar bort #TYPE informationshuvudet från CSV-utdata och krävs inte i PowerShell 6.
Parametrar
-Delimiter
Anger avgränsaren för att avgränsa egenskapsvärdena i CSV-strängar. Standardvärdet är ett kommatecken (,
). Ange ett tecken, till exempel ett kolon (:
). Om du vill ange ett semikolon (;
) omsluter du det inom enkla citattecken.
Type: | Char |
Position: | 1 |
Default value: | comma (,) |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-IncludeTypeInformation
När den här parametern används innehåller den första raden i utdata #TYPE följt av objekttypens fullständigt kvalificerade namn. Till exempel #TYPE System.Diagnostics.Process.
Den här parametern introducerades i PowerShell 6.0.
Type: | SwitchParameter |
Aliases: | ITI |
Position: | Named |
Default value: | #TYPE <Object> |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Anger de objekt som konverteras till CSV-strängar. Ange en variabel som innehåller objekten eller skriv ett kommando eller uttryck som hämtar objekten. Du kan också skicka objekt till ConvertTo-CSV
.
Type: | PSObject |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-NoTypeInformation
Tar bort #TYPE informationshuvudet från utdata. Den här parametern blev standard i PowerShell 6.0 och ingår för bakåtkompatibilitet.
Type: | SwitchParameter |
Aliases: | NTI |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UseCulture
Använder listavgränsaren för den aktuella kulturen som objektavgränsare. Om du vill hitta listavgränsaren för en kultur använder du följande kommando: (Get-Culture).TextInfo.ListSeparator
.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Indata
Du kan skicka alla objekt som har ett ETS-kort (Extended Type System) till ConvertTo-CSV
.
Utdata
CSV-utdata returneras som en samling strängar.
Kommentarer
I CSV-format representeras varje objekt av en kommaavgränsad lista över dess egenskapsvärde. Egenskapsvärdena konverteras till strängar med hjälp av objektets ToString() -metod. Strängarna representeras av egenskapsvärdets namn. ConvertTo-CSV
exporterar inte objektets metoder.
CSV-strängarna matas ut på följande sätt:
- Om IncludeTypeInformation används består den första strängen av #TYPE följt av objekttypens fullständigt kvalificerade namn. Till exempel #TYPE System.Diagnostics.Process.
- Om IncludeTypeInformation inte används innehåller den första strängen kolumnrubrikerna. Rubrikerna innehåller det första objektets egenskapsnamn som en kommaavgränsad lista.
- De återstående strängarna innehåller kommaavgränsade listor över varje objekts egenskapsvärden.
Från och med PowerShell 6.0 är standardbeteendet ConvertTo-CSV
för att inte inkludera #TYPE information i CSV och NoTypeInformation är underförstått. IncludeTypeInformation kan användas för att inkludera #TYPE information och emulera standardbeteendet ConvertTo-CSV
för före PowerShell 6.0.
När du skickar flera objekt till ConvertTo-CSV
ConvertTo-CSV
beställer du strängarna baserat på egenskaperna för det första objektet som du skickar. Om de återstående objekten inte har någon av de angivna egenskaperna är egenskapsvärdet för objektet Null, vilket representeras av två på varandra följande kommatecken. Om de återstående objekten har ytterligare egenskaper ignoreras dessa egenskapsvärden.