Aracılığıyla paylaş


ConvertFrom-Csv

Virgülle ayrılmış değer (CSV) biçimindeki nesne özelliklerini özgün nesnelerin CSV sürümlerine dönüştürür.

Syntax

ConvertFrom-Csv
                [[-Delimiter] <Char>]
                [-InputObject] <PSObject[]>
                [-Header <String[]>]
                [<CommonParameters>]
ConvertFrom-Csv
                -UseCulture
                [-InputObject] <PSObject[]>
                [-Header <String[]>]
                [<CommonParameters>]

Description

cmdlet'i ConvertFrom-Csv , cmdlet tarafından ConvertTo-Csv oluşturulan CSV değişken uzunlukta dizelerden nesneler oluşturur.

Bu cmdlet'in parametrelerini, sonuçta elde edilen nesnelerin özellik adlarını belirleyen sütun üst bilgisi satırını belirtmek, öğe sınırlayıcısını belirtmek veya bu cmdlet'i geçerli kültür için liste ayırıcısını sınırlayıcı olarak kullanmaya yönlendirmek için kullanabilirsiniz.

Oluşturan nesneler ConvertFrom-Csv , özgün nesnelerin CSV sürümleridir. CSV nesnelerinin özellik değerleri, özgün nesnelerin özellik değerlerinin dize sürümleridir. Nesnelerin CSV sürümlerinde herhangi bir yöntem yoktur.

Ve Import-Csv cmdlet'lerini, nesneleri bir dosyadaki (ve geri) CSV dizelerine dönüştürmek için de kullanabilirsinizExport-Csv. Bu cmdlet'ler, CSV dizelerini bir dosyaya ConvertTo-Csv kaydetmeleri dışında ve ConvertFrom-Csv cmdlet'leriyle aynıdır.

Örnekler

Örnek 1: Yerel bilgisayardaki işlemleri CSV biçimine dönüştürme

Bu örnekte, yerel bilgisayardaki işlemlerin CSV biçimine nasıl dönüştürüldüğü ve ardından nesne biçimine nasıl geri yükleneceği gösterilmektedir.

$P = Get-Process | ConvertTo-Csv
$P | ConvertFrom-Csv

cmdlet'i Get-Process işlem hattının ConvertTo-Csvaşağısına işlemleri gönderir. cmdlet'i ConvertTo-Csv , işlem nesnelerini bir dizi CSV dizesine dönüştürür. cmdlet'i ConvertFrom-Csv , CSV dizelerini özgün işlem nesnelerinin CSV sürümlerine dönüştürür. CSV dizeleri değişkene $P kaydedilir.

Örnek 2: Veri nesnesini CSV biçimine ve ardından CSV nesne biçimine dönüştürme

Bu örnekte, bir veri nesnesinin CSV biçimine ve ardından CSV nesne biçimine nasıl dönüştürüldüğü gösterilmektedir.

$Date = Get-Date | ConvertTo-Csv -Delimiter ';'
ConvertFrom-Csv -InputObject $Date -Delimiter ';'

İlk komut geçerli tarih ve saati işlem hattının aşağısına göndermek için ConvertTo-CsvkullanırGet-Date. cmdlet'i ConvertTo-Csv tarih nesnesini bir dizi CSV dizesine dönüştürür. Sınırlayıcı parametresi noktalı virgül sınırlayıcı belirtmek için kullanılır. Dizeler değişkenine $Date kaydedilir.

Örnek 3: Özelliklerin adlarını değiştirmek için üst bilgi parametresini kullanın

Bu örnekte, elde edilen içeri aktarılan nesnedeki özelliklerin adlarını değiştirmek için header parametresinin ConvertFrom-Csv nasıl kullanılacağı gösterilmektedir.

$J = Start-Job -ScriptBlock { Get-Process } | ConvertTo-Csv  -NoTypeInformation
$Header = 'State', 'MoreData', 'StatusMessage', 'Location', 'Command', 'StateInfo', 'Finished', 'InstanceId', 'Id', 'Name', 'ChildJobs', 'BeginTime', 'EndTime', 'JobType', 'Output', 'Error', 'Progress', 'Verbose', 'Debug', 'Warning', 'Information'
# Delete the default header from $J
$J = $J[1..($J.count - 1)]
$J | ConvertFrom-Csv -Header $Header

State         : Running
MoreData      : True
StatusMessage :
Location      : localhost
Command       : Get-Process
StateInfo     : Running
Finished      : System.Threading.ManualResetEvent
InstanceId    : a259eb63-6824-4b97-a033-305108ae1c2e
Id            : 1
Name          : Job1
ChildJobs     : System.Collections.Generic.List`1[System.Management.Automation.Job]
BeginTime     : 12/20/2018 18:59:57
EndTime       :
JobType       : BackgroundJob
Output        : System.Management.Automation.PSDataCollection`1[System.Management.Automation.PSObject]
Error         : System.Management.Automation.PSDataCollection`1[System.Management.Automation.ErrorRecord]
Progress      : System.Management.Automation.PSDataCollection`1[System.Management.Automation.ProgressRecord]
Verbose       : System.Management.Automation.PSDataCollection`1[System.Management.Automation.VerboseRecord]
Debug         : System.Management.Automation.PSDataCollection`1[System.Management.Automation.DebugRecord]
Warning       : System.Management.Automation.PSDataCollection`1[System.Management.Automation.WarningRecord]
Information   : System.Management.Automation.PSDataCollection`1[System.Management.Automation.InformationRecord]

cmdlet'i Start-Job çalıştıran Get-Processbir arka plan işi başlatır. bir iş nesnesi işlem hattına ConvertTo-Csv gönderilir ve csv dizesine dönüştürülür. NoTypeInformation parametresi, CSV çıkışından tür bilgisi üst bilgisini kaldırır ve PowerShell v6 ve üzeri sürümlerde isteğe bağlıdır. değişkeni şu $Header varsayılan değerlerin yerini alan özel bir üst bilgi içerir: HasMoreData, JobStateInfo, PSBeginTime, PSEndTime ve PSJobTypeName. $J değişkeni CSV dizesini içerir ve varsayılan üst bilgiyi kaldırmak için kullanılır. cmdlet'i ConvertFrom-Csv CSV dizesini PSCustomObject'e dönüştürür ve değişkeni uygulamak için Header parametresini $Header kullanır.

Örnek 4: Hizmet nesnelerinin CSV dizelerini dönüştürme

Bu örnekte, cmdlet'in ConvertFrom-CsvUseCulture parametresiyle nasıl kullanılacağı gösterilmektedir.

(Get-Culture).TextInfo.ListSeparator
$Services = (Get-Service | ConvertTo-Csv)
ConvertFrom-Csv -InputObject $Services -UseCulture

Cmdlet, Get-Culture geçerli kültürün varsayılan liste ayırıcısını almak için TextInfo ve ListSeparator iç içe özelliklerini kullanır. cmdlet'i Get-Service hizmet nesnelerini işlem hattının aşağısına ConvertTo-Csvgönderir. , ConvertTo-Csv hizmet nesnelerini bir dizi CSV dizesine dönüştürür. CSV dizeleri değişkeninde $Services depolanır. cmdlet'i ConvertFrom-CsvInputObject parametresini kullanır ve DEĞIŞKENden $Services CSV dizelerini dönüştürür. UseCulture parametresi geçerli kültürün varsayılan liste ayırıcısını kullanır.

UseCulture parametresi kullanıldığında, geçerli kültürün varsayılan liste ayırıcısının CSV dizelerinde kullanılan sınırlayıcıyla eşleştiğinden emin olun. Aksi takdirde, ConvertFrom-Csv CSV dizelerinden nesne oluşturamazsınız.

Parametreler

-Delimiter

CSV dizelerindeki özellik değerlerini ayıran 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.

Dosyadaki gerçek dize sınırlayıcısı dışında bir karakter belirtirseniz, ConvertFrom-Csv CSV dizelerinden nesneleri oluşturamaz ve CSV dizelerini döndürür.

Type:Char
Position:1
Default value:comma (,)
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Header

İçeri aktarılan dize için alternatif bir sütun üst bilgisi satırı belirtir. sütun üst bilgisi tarafından ConvertFrom-Csvoluşturulan nesnelerin özellik adlarını belirler.

Sütun üst bilgilerini virgülle ayrılmış liste olarak girin. Üst bilgi dizesini tırnak içine alma. Her sütun başlığını tek tırnak içine alın.

Veri sütunlarından daha az sütun başlığı girerseniz, kalan veri sütunları atılır. Veri sütunlarından daha fazla sütun başlığı girerseniz, ek sütun başlıkları boş veri sütunlarıyla oluşturulur.

Header parametresini kullanırken, CSV dizelerinden sütun üst bilgisi dizesini atayın. Aksi takdirde, bu cmdlet üst bilgi satırındaki öğelerden fazladan bir nesne oluşturur.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Nesnelere dönüştürülecek CSV dizelerini belirtir. CSV dizelerini içeren bir değişken girin veya CSV dizelerini alan bir komut veya ifade yazın. CSV dizelerini ConvertFrom-Csvöğesine de yöneltebilirsiniz.

Type:PSObject[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
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:True
Accept pipeline input:False
Accept wildcard characters:False

Girişler

String

CSV dizelerini bu cmdlet'e geçirebilirsiniz.

Çıkışlar

PSObject

Bu cmdlet, CSV dizelerindeki özellikler tarafından açıklanan nesneleri döndürür.

Notlar

İçeri aktarılan nesneler nesne türünün CSV sürümleri olduğundan, nesne türünün CSV olmayan sürümlerini biçimlendiren PowerShell türü biçimlendirme girdileri tarafından tanınmıyor ve biçimlendirilmiyor.

CSV biçiminde her nesne, nesnenin özellik değerlerinin virgülle ayrılmış bir listesiyle temsil edilir. Özellik değerleri dizelere dönüştürülür (nesnenin ToString() yöntemi kullanılarak), bu nedenle özellik değerinin adıyla temsil edilirler. Bu cmdlet nesnenin yöntemlerini dışarı aktarmaz.