Megosztás a következőn keresztül:


ConvertTo-Csv

A .NET-objektumokat karakterekkel tagolt érték (CSV) sztringek sorozatává alakítja.

Syntax

Delimiter (Alapértelmezett)

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

A ConvertTo-CSV parancsmag a beküldött objektumokat ábrázoló karakterelválasztó (CSV) sztringek sorozatát adja vissza. Ezután a ConvertFrom-Csv parancsmaggal újból létrehozhat objektumokat a CSV-sztringekből. A CSV-ből konvertált objektumok az eredeti objektumok sztringértékei, amelyek tulajdonságértékeket és metódusokat nem tartalmaznak.

A Export-Csv parancsmaggal csv-sztringekké alakíthatja az objektumokat. Export-CSV hasonló a ConvertTo-CSV, kivéve, hogy a CSV-sztringeket fájlba menti.

A ConvertTo-CSV parancsmag olyan paraméterekkel rendelkezik, amelyek nem vesszőt, vagy az aktuális kultúrát használják elválasztóként.

Példák

1. példa: Objektum konvertálása CSV-vé

Ez a példa egy Process objektumot KONVERTÁL CSV-sztringgé.

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

A Get-Process parancsmag lekéri a Folyamat objektumot, és a Név paramétert használja a PowerShell-folyamat megadásához. A folyamatobjektumot a rendszer elküldi a folyamaton a ConvertTo-CSV parancsmagnak. A ConvertTo-CSV parancsmag CSV-sztringekké alakítja az objektumot. A NoTypeInformation paraméter eltávolítja a #TYPE információs fejlécet a CSV-kimenetből, és nem szükséges a PowerShell 6-ban.

2. példa: DateTime-objektum konvertálása CSV-vé

Ez a példa egy DateTime objektumot KONVERTÁL CSV-sztringgé.

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

A Get-Date parancsmag lekéri a DateTime objektumot, és menti a $Date változóba. A ConvertTo-Csv parancsmag sztringekké alakítja a DateTime objektumot. Az InputObject paraméter a változóban tárolt $Date objektumot használja. A elválasztó paraméter pontosvesszőt ad meg a sztringértékek elválasztásához. A NoTypeInformation paraméter eltávolítja a #TYPE információs fejlécet a CSV-kimenetből, és nem szükséges a PowerShell 6-ban.

3. példa: A PowerShell-eseménynapló konvertálása CSV-vé

Ez a példa a PowerShell Windows-eseménynaplóját CSV-sztringek sorozatává alakítja.

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

A Get-Culture parancsmag a Beágyazott tulajdonságokat TextInfo és ListSeparator használja, és megjeleníti az aktuális kultúra alapértelmezett listaelválasztóját. A Get-WinEvent parancsmag lekéri az eseménynapló-objektumokat, és a LogName paraméter használatával adja meg a naplófájl nevét. Az eseménynapló-objektumok le lesznek küldve a folyamaton a ConvertTo-Csv parancsmagba. A ConvertTo-Csv parancsmag az eseménynapló-objektumokat CSV-sztringek sorozatává alakítja. A UseCulture paraméter az aktuális kultúra alapértelmezett listaelválasztóját használja elválasztóként. A NoTypeInformation paraméter eltávolítja a #TYPE információs fejlécet a CSV-kimenetből, és nem szükséges a PowerShell 6-ban.

4. példa: Konvertálás CSV-vé két oszlop körüli idézőjelekkel

Ez a példa egy DateTime objektumot KONVERTÁL CSV-sztringgé.

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

5. példa: Konvertálás CSV-vé csak szükség esetén idézőjelekkel

Ez a példa egy DateTime objektumot KONVERTÁL CSV-sztringgé.

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

6. példa: Kivonattáblák konvertálása CSV-vé

A PowerShell 7.2-ben és újabb verzióiban a kivonatolók CSV-vé alakításakor az első kivonatoló kulcsai szerializálva lesznek, és fejlécként használják a kimenetben.

$person1 = @{
    Name = 'John Smith'
    Number = 1
}

$person2 = @{
    Name = 'Jane Smith'
    Number = 2
}

$allPeople = $person1, $person2
$allPeople | ConvertTo-Csv
"Name","Number"
"John Smith","1"
"Jane Smith","2"

7. példa: Kivonattáblák átalakítása CSV-vé további tulajdonságokkal

A PowerShell 7.2-ben és újabb verziókban, ha olyan kivonatolót alakít át, amely további tulajdonságokkal rendelkezik Add-Member vagy Select-Object a további tulajdonságokat is hozzáadja fejlécként a CSV-kimenetben.

$allPeople | Add-Member -Name ExtraProp -Value 42
$allPeople | ConvertTo-Csv
"Name","Number","ExtraProp"
"John Smith","1","42"
"Jane Smith","2","42"

Minden kivonatolóhoz tartozik egy ExtraProp nevű tulajdonság, amelyet Add-Member adott hozzá, majd CSV-vé konvertálta. Láthatja, ExtraProp most már fejléc a kimenetben.

Ha egy hozzáadott tulajdonság ugyanazzal a névvel rendelkezik, mint a kivonatolóból származó kulcs, a kulcs elsőbbséget élvez, és csak a kulcs lesz CSV-vé konvertálva.

Paraméterek

-Delimiter

Megadja a CSV-sztringek tulajdonságértékeinek elválasztásához használt elválasztójelet. Az alapértelmezett érték egy vessző (,). Adjon meg egy karaktert, például kettőspontot (:). Ha pontosvesszőt (;) szeretne megadni, akkor azt idézőjelek közé kell foglalnia.

Paramétertulajdonságok

Típus:Char
Alapértelmezett érték:comma (,)
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

Delimiter
Position:1
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-IncludeTypeInformation

Ha ezt a paramétert használja, a kimenet első sora #TYPE tartalmaz, amelyet az objektumtípus teljes neve követ. Például: #TYPE System.Diagnostics.Process.

Ezt a paramétert a PowerShell 6.0-ban vezettük be.

Paramétertulajdonságok

Típus:SwitchParameter
Alapértelmezett érték:False
Támogatja a helyettesítő karaktereket:False
DontShow:False
Aliasok:ITI

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-InputObject

Megadja a CSV-sztringekké konvertált objektumokat. Adjon meg egy változót, amely tartalmazza az objektumokat, vagy írjon be egy parancsot vagy kifejezést, amely lekéri az objektumokat. Az objektumokat ConvertTo-CSV-ba is továbbíthatja.

Paramétertulajdonságok

Típus:PSObject
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:0
Kötelező:True
Folyamatból származó érték:True
Folyamatból származó érték tulajdonságnév alapján:True
Fennmaradó argumentumokból származó érték:False

-NoTypeInformation

Eltávolítja a #TYPE információs fejlécet a kimenetből. Ez a paraméter lett az alapértelmezett a PowerShell 6.0-ban, és a visszamenőleges kompatibilitás érdekében tartalmazza.

Paramétertulajdonságok

Típus:SwitchParameter
Alapértelmezett érték:False
Támogatja a helyettesítő karaktereket:False
DontShow:False
Aliasok:NTI

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-QuoteFields

Megadja az idézendő oszlopok nevét. Ha ezt a paramétert használja, a rendszer csak a megadott oszlopokat idézi. Ez a paraméter a PowerShell 7.0-ban lett hozzáadva.

Paramétertulajdonságok

Típus:

String[]

Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False
Aliasok:QF

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-UseCulture

Az aktuális kultúra listaelválasztót használja elválasztó elemként. Egy kultúra listaelválasztójának megkereséséhez használja a következő parancsot: (Get-Culture).TextInfo.ListSeparator.

Paramétertulajdonságok

Típus:SwitchParameter
Alapértelmezett érték:False
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

UseCulture
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-UseQuotes

Megadja, hogy mikor használják az idézőjeleket a CSV-fájlok. A lehetséges értékek a következők:

  • Soha - ne idézz semmit
  • Mindig – idézés mindent (alapértelmezett viselkedés)
  • AsNeeded – csak elválasztó karaktert, dupla idézőjelet vagy újsoros karaktert tartalmazó idézőjelmezők

Ez a paraméter a PowerShell 7.0-ban lett hozzáadva.

Paramétertulajdonságok

Típus:Microsoft.PowerShell.Commands.BaseCsvWritingCommand+QuoteKind
Alapértelmezett érték:Always
Támogatja a helyettesítő karaktereket:False
DontShow:False
Aliasok:UQ

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

CommonParameters

Ez a parancsmag a következő gyakori paramétereket támogatja: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction és -WarningVariable. További információért lásd about_CommonParameters.

Bevitelek

PSObject

A parancsmaghoz bármely olyan objektumot csövezhet, amely rendelkezik kiterjesztett típusú rendszer-(ETS-) adaptersel.

Kimenetek

String

Ez a parancsmag egy vagy több, az egyes átalakított objektumokat képviselő sztringet ad vissza.

Jegyzetek

CSV formátumban minden objektumot a tulajdonságérték karakterrel elválasztott listája jelöl. A tulajdonságértékek sztringekké alakulnak az objektum ToString() metódusával. A sztringeket a tulajdonságérték neve jelöli. ConvertTo-CSV nem exportálja az objektum metódusát.

A CSV-sztringek kimenete a következő:

  • Ha IncludeTypeInformation használ, az első sztring #TYPE és az objektumtípus teljes neve. Például #TYPE System.Diagnostics.Process.
  • Ha IncludeTypeInformation nincs használatban, az első sztring tartalmazza az oszlopfejléceket. A fejlécek az első objektum tulajdonságneveit tartalmazzák karakterrel elválasztott listaként.
  • A többi sztring az egyes objektumok tulajdonságértékeinek karakterekkel tagolt listáját tartalmazza.

A PowerShell 6.0-tól kezdődően a ConvertTo-CSV alapértelmezett viselkedése az, hogy nem tartalmazza a #TYPE információkat a CSV-ben, és NoTypeInformation is utal. IncludeTypeInformation használható a #TYPE adatok belefoglalására és a ConvertTo-CSV alapértelmezett viselkedésének emulálására a PowerShell 6.0 előtt.

Ha több objektumot küld el a ConvertTo-CSV, ConvertTo-CSV az első beküldendő objektum tulajdonságai alapján rendeli meg a sztringeket. Ha a többi objektum nem rendelkezik a megadott tulajdonságok egyikével, akkor az objektum tulajdonságértéke Null, amelyet két egymást követő vessző jelöl. Ha a többi objektum további tulajdonságokkal rendelkezik, a rendszer figyelmen kívül hagyja ezeket a tulajdonságértékeket.