ConvertTo-Csv
Převede objekty na řadu řetězců hodnot oddělených čárkami (CSV).
Syntax
ConvertTo-Csv
[-InputObject] <psobject>
[[-Delimiter] <char>]
[-NoTypeInformation]
[<CommonParameters>]
ConvertTo-Csv
[-InputObject] <psobject>
[-UseCulture]
[-NoTypeInformation]
[<CommonParameters>]
Description
Rutina ConvertTo-CSV
vrátí řadu řetězců hodnot oddělených čárkami (CSV), které představují objekty, které odešlete. Pak můžete použít rutinu ConvertFrom-Csv
k opětovnému vytvoření objektů z řetězců CSV. Objekty převedené z 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
je podobný ConvertTo-CSV
souboru , s tím rozdílem, že ukládá řetězce CSV do souboru.
Rutina ConvertTo-CSV
má parametry pro určení 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 'PowerShell' | ConvertTo-Csv -NoTypeInformation
"Name","SI","Handles","VM","WS","PM","NPM","Path","Company","CPU","FileVersion", ...
"powershell","11","691","2204036739072","175943680","132665344","33312", ...
Rutina Get-Process
získá objekt Process a použije parametr Name k určení procesu 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 #TYPE informací z výstupu sdíleného svazku clusteru.
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 $Date
proměnné. Rutina ConvertTo-Csv
převede objekt DateTime na řetězce. Parametr InputObject používá objekt DateTime uložený v $Date
proměnné. Parametr Oddělovač určuje středník pro oddělení řetězcových hodnot. Parametr NoTypeInformation odebere hlavičku #TYPE informací z výstupu sdíleného svazku clusteru.
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 '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", ...
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á výchozí oddělovač seznamu aktuální jazykové verze jako oddělovač. Parametr NoTypeInformation odebere hlavičku #TYPE informací z výstupu sdíleného svazku clusteru.
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.
Type: | Char |
Position: | 1 |
Default value: | comma (,) |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Určuje objekty, které se převedou na řetězce CSV. Zadejte proměnnou, která obsahuje objekty, nebo zadejte příkaz nebo výraz, který objekty získá. Objekty můžete také převést do objektu ConvertTo-CSV
.
Type: | PSObject |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-NoTypeInformation
Odebere záhlaví #TYPE informací z výstupu. Tento parametr se stal výchozím parametrem v PowerShellu 6.0 a je zahrnutý pro zpětnou kompatibilitu.
Type: | SwitchParameter |
Aliases: | NTI |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UseCulture
Použije oddělovač seznamu pro aktuální jazykovou verzi jako oddělovač položek. Pokud chcete najít oddělovač seznamu pro jazykovou verzi, použijte následující příkaz: (Get-Culture).TextInfo.ListSeparator
.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Vstupy
Libovolný objekt s adaptérem ETS (Extended Type System) můžete nasměrovat na ConvertTo-CSV
.
Výstupy
Výstup CSV se vrátí jako kolekce řetězců.
Poznámky
Ve formátu CSV je každý objekt reprezentován čárkami odděleným seznamem jeho hodnoty 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.
Výstup řetězců CSV je následující:
- Ve výchozím nastavení první řetězec obsahuje hlavičku #TYPE informací následovanou plně kvalifikovaným názvem typu objektu. Například #TYPE System.Diagnostics.Process.
- Pokud se použije NoTypeInformation , 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í jednotlivých objektů.
Když odešlete více objektů do ConvertTo-CSV
, ConvertTo-CSV
seřídí ř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 mají zbývající objekty další vlastnosti, budou tyto hodnoty vlastností ignorovány.