ConvertTo-Csv
A .NET-objektumokat karakterekkel tagolt érték (CSV) sztringek sorozatává alakítja.
Syntax
ConvertTo-Csv
[-InputObject] <PSObject>
[[-Delimiter] <Char>]
[-IncludeTypeInformation]
[-NoTypeInformation]
[-QuoteFields <String[]>]
[-UseQuotes <QuoteKind>]
[-NoHeader]
[<CommonParameters>]
ConvertTo-Csv
[-InputObject] <PSObject>
[-UseCulture]
[-IncludeTypeInformation]
[-NoTypeInformation]
[-QuoteFields <String[]>]
[-UseQuotes <QuoteKind>]
[-NoHeader]
[<CommonParameters>]
Description
A ConvertTo-CSV
parancsmag a beküldött objektumokat képviselő karakterekkel tagolt értéksztringek 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 az objektumokat CSV-sztringekké alakíthatja. Export-CSV
ConvertTo-CSV
hasonló, azzal a kivételrel, 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 folyamatobjektumot CSV-sztringgé alakít át.
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éter használatával adja meg a PowerShell-folyamatot. 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 adatfejlé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 CSV-sztringgé alakít át.
$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 $Date
tárolt DateTime objektumot használja. A Határoló paraméter pontosvesszőt ad meg a sztringértékek elválasztásához. A NoTypeInformation paraméter eltávolítja a #TYPE adatfejlé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 TextInfo és a ListSeparator tulajdonságokat 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 folyamatról a ConvertTo-Csv
parancsmagnak. A ConvertTo-Csv
parancsmag csV-sztringek sorozatává alakítja az eseménynapló-objektumokat. 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 adatfejlé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 CSV-sztringgé alakít át.
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 CSV-sztringgé alakít át.
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 konvertál, amely további tulajdonságokat Add-Member
ad hozzá, 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 hozzáadott Add-Member
tulajdonságExtraProp
, majd CSV-vé alakítva. ExtraProp
Láthatja, hogy a kimenet egy fejléc.
Ha egy hozzáadott tulajdonság neve megegyezik a kivonatoló kulcsával, 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 (:
). Pontosvessző (;
) megadásához a pontosvesszőt idézőjelek közé kell foglalni.
Type: | Char |
Position: | 1 |
Default value: | comma (,) |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-IncludeTypeInformation
Ha ezt a paramétert használja, a kimenet első sora tartalmazza #TYPE
az objektumtípus teljes nevét. Például: #TYPE System.Diagnostics.Process
.
Ezt a paramétert a PowerShell 6.0-ban vezettük be.
Type: | SwitchParameter |
Aliases: | ITI |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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 be is csövezheti a parancsba ConvertTo-CSV
.
Type: | PSObject |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-NoHeader
Ha ezt a paramétert használja, a parancsmag nem ír fejlécsort, amely az oszlopneveket tartalmazza a kimenetbe.
Ez a paraméter a PowerShell 7.4-ben lett hozzáadva.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-NoTypeInformation
Eltávolítja az #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.
Type: | SwitchParameter |
Aliases: | NTI |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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.
Type: | String[] |
Aliases: | QF |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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
.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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.
Type: | Microsoft.PowerShell.Commands.BaseCsvWritingCommand+QuoteKind |
Aliases: | UQ |
Position: | Named |
Default value: | Always |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Bevitelek
A parancsmaghoz bármely olyan objektumot csövezhet, amely rendelkezik kiterjesztett típusú rendszer-(ETS-) adaptersel.
Kimenetek
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ő:
- Az IncludeTypeInformation használata esetén az első sztring #TYPE, amelyet az objektumtípus teljes neve követ. Például #TYPE System.Diagnostics.Process.
- Ha az IncludeTypeInformation nem használatos, 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 az alapértelmezett viselkedés ConvertTo-CSV
az, hogy nem tartalmazza a #TYPE információkat a CSV-ben, és a NoTypeInformation nem jelenik meg. Az IncludeTypeInformation a #TYPE adatok belefoglalására ConvertTo-CSV
és a PowerShell 6.0 előtti alapértelmezett viselkedés emulálására használható.
Ha több objektumot ConvertTo-CSV
küld el, ConvertTo-CSV
a sztringeket az első beküldendő objektum tulajdonságai alapján rendeli meg. 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.
Kapcsolódó hivatkozások
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: