Dela via


ConvertTo-Csv

Konverterar .NET-objekt till en serie teckenavgränsade värdesträngar (CSV).

Syntax

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

Description

Cmdleten ConvertTo-CSV returnerar en serie teckenavgrä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 avgränsare som inte är ett kommatecken eller använda den aktuella kulturen som avgränsare.

Exempel

Exempel 1: Konvertera ett objekt till CSV

I det här exemplet konverteras ett processobjekt till en CSV-sträng.

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

Cmdleten Get-Processhä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 informationsrubriken från CSV-utdata.

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-Datehämtar DateTime-objektet och sparar det i variabeln $Date . Cmdleten ConvertTo-Csvkonverterar 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 informationsrubriken från CSV-utdata.

Exempel 3: Konvertera PowerShell-händelseloggen till CSV

I det här exemplet konverteras Windows-händelseloggen för PowerShell till en serie CSV-strängar.

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

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 parametern LogName 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 informationsrubriken från CSV-utdata.

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 (;) omger du det inom enkla citattecken.

Type:Char
Position:1
Default value:comma (,)
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 informationsrubriken 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:False
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:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Indata

PSObject

Du kan skicka alla objekt som har ett ETS-kort (Extended Type System) till den här cmdleten.

Utdata

String

Den här cmdleten returnerar en eller flera strängar som representerar varje konverterat objekt.

Kommentarer

I CSV-format representeras varje objekt av en teckenavgrä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:

  • Som standard innehåller den första strängen #TYPE informationsrubrik följt av objekttypens fullständigt kvalificerade namn. Till exempel #TYPE System.Diagnostics.Process.
  • Om NoTypeInformation 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.

När du skickar flera objekt till ConvertTo-CSVConvertTo-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å kommatecken i följd. Om de återstående objekten har ytterligare egenskaper ignoreras dessa egenskapsvärden.