ConvertTo-Csv
.NET nesnelerini bir dizi karakterle ayrılmış değer (CSV) dizesine dönüştürür.
Syntax
ConvertTo-Csv
[-InputObject] <PSObject>
[[-Delimiter] <Char>]
[-IncludeTypeInformation]
[-NoTypeInformation]
[-QuoteFields <String[]>]
[-UseQuotes <QuoteKind>]
[<CommonParameters>]
ConvertTo-Csv
[-InputObject] <PSObject>
[-UseCulture]
[-IncludeTypeInformation]
[-NoTypeInformation]
[-QuoteFields <String[]>]
[-UseQuotes <QuoteKind>]
[<CommonParameters>]
Description
Cmdlet, ConvertTo-CSV
gönderdiğiniz nesneleri temsil eden bir dizi virgülle ayrılmış değer (CSV) dizesi döndürür. Daha sonra CSV dizelerinden nesneleri yeniden oluşturmak için cmdlet'ini kullanabilirsiniz ConvertFrom-Csv
. CSV'den dönüştürülen nesneler, özellik değerleri içeren ve yöntem içermeyen özgün nesnelerin dize değerleridir.
Nesneleri CSV dizelerine dönüştürmek için cmdlet'ini kullanabilirsiniz Export-Csv
. Export-CSV
, CSV dizelerini bir dosyaya kaydetmesi dışında öğesine benzer ConvertTo-CSV
.
ConvertTo-CSV
Cmdlet'in virgül dışında bir sınırlayıcı belirtmek veya sınırlayıcı olarak geçerli kültürü kullanmak için parametreleri vardır.
Örnekler
Örnek 1: Nesneyi CSV'ye dönüştürme
Bu örnek bir Process nesnesini CSV dizesine dönüştürür.
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", ...
Cmdlet processGet-Process
nesnesini alır ve Name parametresini kullanarak PowerShell işlemini belirtir. İşlem nesnesi işlem hattı cmdlet'ine ConvertTo-CSV
gönderilir. cmdlet'i ConvertTo-CSV
nesneyi CSV dizelerine dönüştürür. NoTypeInformation parametresi, CSV çıkışından #TYPE bilgi üst bilgisini kaldırır ve PowerShell 6'da gerekli değildir.
Örnek 2: DateTime nesnesini CSV'ye dönüştürme
Bu örnek bir DateTime nesnesini CSV dizesine dönüştürür.
$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"
cmdlet'i Get-Date
DateTime nesnesini alır ve değişkenine $Date
kaydeder. cmdlet'i ConvertTo-Csv
DateTime nesnesini dizelere dönüştürür. InputObject parametresi değişkeninde $Date
depolanan DateTime nesnesini kullanır. Sınırlayıcı parametresi, dize değerlerini ayırmak için noktalı virgül belirtir. NoTypeInformation parametresi, CSV çıkışından #TYPE bilgi üst bilgisini kaldırır ve PowerShell 6'da gerekli değildir.
Örnek 3: PowerShell olay günlüğünü CSV'ye dönüştürme
Bu örnek, PowerShell için Windows olay günlüğünü bir dizi CSV dizesine dönüştürür.
(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", ...
Cmdlet, Get-Culture
TextInfo ve ListSeparator iç içe özelliklerini kullanır ve geçerli kültürün varsayılan liste ayırıcısını görüntüler. Cmdlet olay Get-WinEvent
günlüğü nesnelerini alır ve günlük dosyası adını belirtmek için LogName parametresini kullanır. Olay günlüğü nesneleri işlem hattı cmdlet'ine ConvertTo-Csv
gönderilir. cmdlet'i ConvertTo-Csv
olay günlüğü nesnelerini bir dizi CSV dizesine dönüştürür. UseCulture parametresi, sınırlayıcı olarak geçerli kültürün varsayılan liste ayırıcısını kullanır. NoTypeInformation parametresi, CSV çıkışından #TYPE bilgi üst bilgisini kaldırır ve PowerShell 6'da gerekli değildir.
Örnek 4: İki sütun çevresinde tırnak işaretleri olan CSV'ye dönüştürme
Bu örnek bir DateTime nesnesini CSV dizesine dönüştürür.
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
Örnek 5: Yalnızca gerektiğinde tırnak işaretleri ile CSV'ye dönüştürme
Bu örnek bir DateTime nesnesini CSV dizesine dönüştürür.
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
Parametreler
-Delimiter
CSV dizelerindeki özellik değerlerini ayırmak için sınırlayıcıyı belirtir. Varsayılan değer virgüldür (,
). İki nokta üst üste ():
gibi bir karakter girin. Noktalı virgül (;
) belirtmek için tek tırnak içine alın.
Type: | Char |
Position: | 1 |
Default value: | comma (,) |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-IncludeTypeInformation
Bu parametre kullanıldığında çıkışın ilk satırı #TYPE ve ardından nesne türünün tam adını içerir. Örneğin, System.Diagnostics.Process #TYPE.
Bu parametre PowerShell 6.0'da kullanıma sunulmuştur.
Type: | SwitchParameter |
Aliases: | ITI |
Position: | Named |
Default value: | #TYPE <Object> |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
CSV dizelerine dönüştürülen nesneleri belirtir. Nesneleri içeren bir değişken girin veya nesneleri alan bir komut veya ifade yazın. Nesneleri öğesine ConvertTo-CSV
de yöneltebilirsiniz.
Type: | PSObject |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-NoTypeInformation
Çıktıdan #TYPE bilgi üst bilgisini kaldırır. Bu parametre PowerShell 6.0'da varsayılan hale geldi ve geriye dönük uyumluluk için dahil edilir.
Type: | SwitchParameter |
Aliases: | NTI |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-QuoteFields
Tırnak içine alınması gereken sütunların adlarını belirtir. Bu parametre kullanıldığında yalnızca belirtilen sütunlar tırnak içine alınır. Bu parametre PowerShell 7.0'a eklendi.
Type: | String[] |
Aliases: | QF |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UseCulture
Öğe sınırlayıcısı olarak geçerli kültür için liste ayırıcısını kullanır. Bir kültürün liste ayırıcısını bulmak için şu komutu kullanın: (Get-Culture).TextInfo.ListSeparator
.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UseQuotes
CSV dosyalarında tırnakların ne zaman kullanılacağını belirtir. Olası değerler şunlardır:
- Hiçbir zaman - hiçbir şeyden alıntı yapmayın
- Her zaman - her şeyi tırnak içine alma (varsayılan davranış)
- AsNeeded - yalnızca sınırlayıcı karakteri içeren tırnak alanları
Bu parametre PowerShell 7.0'a eklendi.
Type: | Microsoft.PowerShell.Commands.BaseCsvWritingCommand+QuoteKind |
Aliases: | UQ |
Position: | Named |
Default value: | Always |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Girişler
Genişletilmiş Tür Sistemi (ETS) bağdaştırıcısı olan herhangi bir nesneyi öğesine aktarabilirsiniz ConvertTo-CSV
.
Çıkışlar
CSV çıkışı dize koleksiyonu olarak döndürülür.
Notlar
CSV biçiminde her nesne, özellik değerinin virgülle ayrılmış bir listesiyle temsil edilir. Özellik değerleri, nesnenin ToString() yöntemi kullanılarak dizelere dönüştürülür. Dizeler özellik değeri adıyla temsil edilir. ConvertTo-CSV
nesnenin yöntemlerini dışarı aktarmaz.
CSV dizeleri aşağıdaki gibi çıkıştır:
- IncludeTypeInformation kullanılırsa, ilk dize #TYPE ve ardından nesne türünün tam adını içerir. Örneğin, System.Diagnostics.Process #TYPE.
- IncludeTypeInformation kullanılmazsa, ilk dize sütun başlıklarını içerir. Üst bilgiler, ilk nesnenin özellik adlarını virgülle ayrılmış liste olarak içerir.
- Kalan dizeler, her nesnenin özellik değerlerinin virgülle ayrılmış listelerini içerir.
PowerShell 6.0'ın varsayılan davranışı ConvertTo-CSV
, CSV'ye #TYPE bilgilerini eklememektir ve NoTypeInformation örtülüdür. IncludeTypeInformation, #TYPE bilgilerini eklemek ve PowerShell 6.0 öncesi varsayılan davranışını öykünmek ConvertTo-CSV
için kullanılabilir.
öğesine ConvertTo-CSV
birden çok nesne gönderdiğinizde, ConvertTo-CSV
dizeleri gönderdiğiniz ilk nesnenin özelliklerine göre sıralar. Kalan nesneler belirtilen özelliklerden birine sahip değilse, ardışık iki virgülle gösterildiği gibi bu nesnenin özellik değeri Null olur. Kalan nesnelerin ek özellikleri varsa, bu özellik değerleri yoksayılır.