Sdílet prostřednictvím


ConvertTo-Csv

Převede objekty .NET na řadu řetězců hodnot oddělených znakem (CSV).

Syntax

Delimiter (Výchozí)

ConvertTo-Csv
    [-InputObject] <PSObject>
    [[-Delimiter] <Char>]
    [-IncludeTypeInformation]
    [-NoTypeInformation]
    [-QuoteFields <String[]>]
    [-UseQuotes <QuoteKind>]
    [<CommonParameters>]

UseCulture

ConvertTo-Csv
    [-InputObject] <PSObject>
    [-UseCulture]
    [-IncludeTypeInformation]
    [-NoTypeInformation]
    [-QuoteFields <String[]>]
    [-UseQuotes <QuoteKind>]
    [<CommonParameters>]

Description

Rutina ConvertTo-CSV vrací řadu řetězců hodnot oddělených čárkami (CSV), které představují objekty, které odešlete. Potom můžete použít rutinu ConvertFrom-Csv k opětovnému vytvoření objektů z řetězců CSV. Objekty převedené ze souboru CSV jsou řetězcové hodnoty původních objektů, které obsahují hodnoty vlastností a žádné metody.

Pomocí rutiny Export-Csv můžete převést objekty na řetězce CSV. Export-CSV se podobá ConvertTo-CSVs tím rozdílem, že ukládá řetězce CSV do souboru.

Rutina ConvertTo-CSV má parametry pro zadání jiného oddělovače než čárky nebo použití aktuální jazykové verze jako oddělovače.

Příklady

Příklad 1: Převod objektu na CSV

Tento příklad převede objekt Process na řetězec CSV.

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

Rutina Get-Process získá objekt Process a pomocí parametru Name určí proces PowerShellu. Objekt procesu se odešle do kanálu do rutiny ConvertTo-CSV. Rutina ConvertTo-CSV převede objekt na řetězce CSV. Parametr NoTypeInformation odebere hlavičku informací #TYPE z výstupu CSV a není vyžadována v PowerShellu 6.

Příklad 2: Převod objektu DateTime na CSV

Tento příklad převede objekt DateTime na řetězec CSV.

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

Rutina Get-Date získá objekt DateTime a uloží ho do proměnné $Date. Rutina ConvertTo-Csv převede objekt DateTime na řetězce. Parametr InputObject používá objekt DateTime uložený v proměnné $Date. Parametr oddělovače určuje středník pro oddělení řetězcových hodnot. Parametr NoTypeInformation odebere hlavičku informací #TYPE z výstupu CSV a není vyžadována v PowerShellu 6.

Příklad 3: Převod protokolu událostí PowerShellu na CSV

Tento příklad převede protokol událostí Windows pro PowerShell na řadu řetězců CSV.

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

Rutina Get-Culture používá vnořené vlastnosti TextInfo a ListSeparator a zobrazí výchozí oddělovač seznamu aktuální jazykové verze. Rutina Get-WinEvent získá objekty protokolu událostí a pomocí parametru LogName určí název souboru protokolu. Objekty protokolu událostí se odesílají do kanálu do rutiny ConvertTo-Csv. Rutina ConvertTo-Csv převede objekty protokolu událostí na řadu řetězců CSV. Parametr UseCulture používá jako oddělovač výchozího seznamu aktuální jazykové verze. Parametr NoTypeInformation odebere hlavičku informací #TYPE z výstupu CSV a není vyžadována v PowerShellu 6.

Příklad 4: Převod na CSV s uvozovkami kolem dvou sloupců

Tento příklad převede objekt DateTime na řetězec CSV.

Get-Date | ConvertTo-Csv -QuoteFields "DateTime","Date"
DisplayHint,"DateTime","Date",Day,DayOfWeek,DayOfYear,Hour,Kind,Millisecond,Minute,Month,Second,Ticks,TimeOfDay,Year
DateTime,"Thursday, August 22, 2019 11:27:34 AM","8/22/2019 12:00:00 AM",22,Thursday,234,11,Local,569,27,8,34,637020700545699784,11:27:34.5699784,2019

Příklad 5: Převod na CSV s uvozovkami pouze v případě potřeby

Tento příklad převede objekt DateTime na řetězec CSV.

Get-Date | ConvertTo-Csv -UseQuotes AsNeeded
DisplayHint,DateTime,Date,Day,DayOfWeek,DayOfYear,Hour,Kind,Millisecond,Minute,Month,Second,Ticks,TimeOfDay,Year
DateTime,"Thursday, August 22, 2019 11:31:00 AM",8/22/2019 12:00:00 AM,22,Thursday,234,11,Local,713,31,8,0,637020702607132640,11:31:00.7132640,2019

Parametry

-Delimiter

Určuje oddělovač pro oddělení hodnot vlastností v řetězcích CSV. Výchozí hodnota je čárka (,). Zadejte znak, například dvojtečku (:). Pokud chcete zadat středník (;), uzavřete ho do jednoduchých uvozovek.

Vlastnosti parametru

Typ:Char
Default value:comma (,)
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

Delimiter
Position:1
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

-IncludeTypeInformation

Při použití tohoto parametru obsahuje první řádek výstupu #TYPE následovaný plně kvalifikovaným názvem typu objektu. Například #TYPE System.Diagnostics.Process.

Tento parametr byl představen v PowerShellu 6.0.

Vlastnosti parametru

Typ:SwitchParameter
Podporuje zástupné znaky:False
DontShow:False
Aliasy:ITI

Sady parametrů

(All)
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

-InputObject

Určuje objekty, které jsou převedeny na řetězce CSV. Zadejte proměnnou obsahující objekty nebo zadejte příkaz nebo výraz, který objekty získá. Objekty lze také pipetovat do ConvertTo-CSV.

Vlastnosti parametru

Typ:PSObject
Default value:None
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

(All)
Position:0
Povinné:True
Hodnota z kanálu:True
Hodnota z kanálu podle názvu vlastnosti:True
Hodnota ze zbývajících argumentů:False

-NoTypeInformation

Odebere ze výstupu hlavičku #TYPE informací. Tento parametr se stal výchozím nastavením v PowerShellu 6.0 a je součástí zpětné kompatibility.

Vlastnosti parametru

Typ:SwitchParameter
Default value:None
Podporuje zástupné znaky:False
DontShow:False
Aliasy:NTI

Sady parametrů

(All)
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

-QuoteFields

Určuje názvy sloupců, které mají být citovány. Při použití tohoto parametru jsou uvozovány pouze zadané sloupce. Tento parametr byl přidán v PowerShellu 7.0.

Vlastnosti parametru

Typ:

String[]

Default value:None
Podporuje zástupné znaky:False
DontShow:False
Aliasy:QF

Sady parametrů

(All)
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

-UseCulture

Použije oddělovač seznamu pro aktuální kulturu jako oddělovač položek. K vyhledání oddělovače seznamu pro kulturu použijte následující příkaz: (Get-Culture).TextInfo.ListSeparator.

Vlastnosti parametru

Typ:SwitchParameter
Default value:None
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

UseCulture
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

-UseQuotes

Určuje, kdy se v souborech CSV použijí uvozovky. Možné hodnoty:

  • Nikdy - nic neuvozujte
  • Vždy – uvozovek vše (výchozí chování)
  • AsNeed – pouze pole uvozovek, která obsahují znak oddělovače

Tento parametr byl přidán v PowerShellu 7.0.

Vlastnosti parametru

Typ:Microsoft.PowerShell.Commands.BaseCsvWritingCommand+QuoteKind
Default value:Always
Podporuje zástupné znaky:False
DontShow:False
Aliasy:UQ

Sady parametrů

(All)
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

CommonParameters

Tato rutina podporuje běžné parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction a -WarningVariable. Další informace najdete v about_CommonParameters.

Vstupy

PSObject

Libovolný objekt, který má adaptér ETS (Extended Type System), můžete přesměrovat do ConvertTo-CSV.

Výstupy

String

Výstup CSV je vrácen jako kolekce řetězců.

Poznámky

Ve formátu CSV je každý objekt reprezentován čárkami odděleným seznamem hodnoty jeho vlastnosti. Hodnoty vlastností se převedou na řetězce pomocí metody ToString() objektu. Řetězce jsou reprezentovány názvem hodnoty vlastnosti. ConvertTo-CSV neexportuje metody objektu.

Řetězce CSV jsou výstupem následujícím způsobem:

  • Pokud se používá IncludeTypeInformation, první řetězec se skládá z #TYPE následovaný plně kvalifikovaným názvem typu objektu. Například #TYPE System.Diagnostics.Process.
  • Pokud IncludeTypeInformation není použit první řetězec obsahuje záhlaví sloupců. Záhlaví obsahují názvy vlastností prvního objektu jako seznam oddělený čárkami.
  • Zbývající řetězce obsahují čárkami oddělené seznamy hodnot vlastností každého objektu.

Počínaje PowerShellem 6.0 výchozí chování ConvertTo-CSV není zahrnout informace #TYPE do souboru CSV a NoTypeInformation implicitně. IncludeTypeInformation lze použít k zahrnutí informací o #TYPE a emulaci výchozího chování ConvertTo-CSV před PowerShellem 6.0.

Když odešlete více objektů do ConvertTo-CSV, ConvertTo-CSV objednávky řetězce na základě vlastností prvního objektu, který odešlete. Pokud zbývající objekty nemají jednu ze zadaných vlastností, hodnota vlastnosti tohoto objektu je Null, jak je reprezentováno dvěma po sobě jdoucími čárkami. Pokud zbývající objekty mají další vlastnosti, budou tyto hodnoty vlastností ignorovány.