ConvertTo-Csv
.NET nesnelerini karakterle ayrılmış değer (CSV) dizeleri dizisine 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 karakterle ayrılmış değer (CSV) dizesi döndürür. Ardından 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.
Cmdlet'ini Export-Csv
kullanarak nesneleri CSV dizelerine dönüştürebilirsiniz. Export-CSV
ConvertTo-CSV
, CSV dizelerini bir dosyaya kaydetmesi dışında benzerdir.
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, 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 İşlem Get-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şkene $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şaretiyle 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
Örnek 6: Karma tablolarını CSV'ye dönüştürme
PowerShell 7.2 ve üzerinde karma tablolarınızı CSV'ye dönüştürdüğünüzde, ilk karma tablo anahtarları serileştirilir ve çıktıda üst bilgi olarak kullanılır.
$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"
Örnek 7: Ek özelliklerle karma tablolarını CSV'ye dönüştürme
PowerShell 7.2 ve üzeri sürümleriyle eklenen Add-Member
ek özelliklere sahip bir karma tablo dönüştürdüğünüzde veya Select-Object
ek özellikler de CSV çıkışına üst bilgi olarak eklenir.
$allPeople | Add-Member -Name ExtraProp -Value 42
$allPeople | ConvertTo-Csv
"Name","Number","ExtraProp"
"John Smith","1","42"
"Jane Smith","2","42"
Her karma tablo tarafından Add-Member
eklenen ve csv'ye dönüştürülen adlı ExtraProp
bir özelliğe sahiptir. Artık çıktıda bir üst bilgi olduğunu görebilirsiniz ExtraProp
.
Eklenen bir özellik karma tablodaki anahtarla aynı ada sahipse, anahtar önceliklidir ve yalnızca anahtar CSV'ye dönüştürülür.
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 (:
) 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ı, ardından nesne türünün tam adını içerir #TYPE
. Örneğin, #TYPE System.Diagnostics.Process
.
Bu parametre PowerShell 6.0'da kullanıma sunulmuştur.
Type: | SwitchParameter |
Aliases: | ITI |
Position: | Named |
Default value: | False |
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 değer oldu ve geriye dönük uyumluluk için eklenmiştir.
Type: | SwitchParameter |
Aliases: | NTI |
Position: | Named |
Default value: | False |
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: | False |
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 alıntıla (varsayılan davranış)
- AsNeeded - yalnızca sınırlayıcı karakter, çift tırnak veya yeni satır 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 bu cmdlet'e aktarabilirsiniz.
Çıkışlar
Bu cmdlet, dönüştürülen her nesneyi temsil eden bir veya daha fazla dize döndürür.
Notlar
CSV biçiminde her nesne, özellik değerinin karakterle 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 üst bilgilerini içerir. Üst bilgiler, ilk nesnenin özellik adlarını karakterle ayrılmış liste olarak içerir.
- Kalan dizeler, her nesnenin özellik değerlerinin karakterle 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'ın önceki varsayılan davranışına öykünmek ConvertTo-CSV
için kullanılabilir.
öğesine ConvertTo-CSV
ConvertTo-CSV
birden çok nesne gönderdiğinizde, 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.
İlişkili Bağlantılar
PowerShell
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin