Aracılığıyla paylaş


ConvertFrom-String

Dize içeriğinden yapılandırılmış özellikleri ayıklar ve ayrıştırılır.

Syntax

ByDelimiter (Varsayılan)

ConvertFrom-String
    [-InputObject] <String>
    [-Delimiter <String>]
    [-PropertyNames <String[]>]
    [<CommonParameters>]

TemplateParsing

ConvertFrom-String
    [-InputObject] <String>
    [-TemplateFile <String[]>]
    [-TemplateContent <String[]>]
    [-IncludeExtent]
    [-UpdateTemplate]
    [<CommonParameters>]

Description

ConvertFrom-String cmdlet'i, yapılandırılmış özellikleri dize içeriğinden ayıklar ve ayrıştırılır. Bu cmdlet, geleneksel bir metin akışından metin ayrıştırarak bir nesne oluşturur. İşlem hattındaki her dize için, cmdlet girişi bir sınırlayıcı veya ayrıştırma ifadesiyle böler ve ardından sonuçta elde edilen bölme öğelerinin her birine özellik adları atar. Bu özellik adlarını sağlayabilirsiniz; aksi takdirde bunlar sizin için otomatik olarak oluşturulur.

Cmdlet'in varsayılan parametre kümesi olan ByDelimiter, tam olarak normal ifade sınırlayıcısına bölünür. Import-Csv cmdlet'in yaptığı gibi tırnak eşleştirme veya sınırlayıcı kaçışı gerçekleştirmez.

Cmdlet'in templateParsingalternatif parametre kümesi, normal bir ifade tarafından yakalanan gruplardan öğeler oluşturur. Normal ifadeler hakkında daha fazla bilgi için bkz. about_Regular_Expressions.

Bu cmdlet iki modu destekler: temel sınırlandırılmış ayrıştırma ve otomatik olarak oluşturulan örnek temelli ayrıştırma.

Sınırlandırılmış ayrıştırma, varsayılan olarak girişi boşlukta böler ve sonuçta elde edilen gruplara özellik adları atar.

ConvertFrom-String sonuçlarını Format-* cmdlet'lerinden birine ekleyerek sınırlayıcıyı özelleştirebilir veya Sınırlayıcı parametresini kullanabilirsiniz.

Cmdlet, Microsoft Researchtarafından yapılan araştırma çalışmalarını FlashExtract'e göre otomatik olarak oluşturulan örnek temelli ayrıştırmayı da destekler.

Örnekler

Örnek 1: Varsayılan özellik adlarıyla bir nesne oluşturma

"Hello World" | ConvertFrom-String
P1    P2
--    --
Hello World

Bu komut, P1 ve P2 varsayılan özellik adlarına sahip bir nesne oluşturur.

Örnek 1A: Oluşturulan nesneyi tanımaya başlama

Bu komut, P1 P2özelliklerine sahip bir nesne oluşturur; her iki özellik de varsayılan olarak Dize türündedir.

"Hello World" | ConvertFrom-String | Get-Member

   TypeName: System.Management.Automation.PSCustomObject

Name        MemberType   Definition
----        ----------   ----------
Equals      Method       bool Equals(System.Object obj)
GetHashCode Method       int GetHashCode()
GetType     Method       type GetType()
ToString    Method       string ToString()
P1          NoteProperty string P1=Hello
P2          NoteProperty string P2=World

Örnek 2: Sınırlayıcı kullanarak varsayılan özellik adlarına sahip bir nesne oluşturma

Bu komut, sınırlayıcı olarak ters eğik çizgi (\) kullanarak etki alanı ve kullanıcı adı içeren bir nesne oluşturur. Normal ifadeler kullanılırken ters eğik çizgi karakterinin başka bir ters eğik çizgiyle kaçış karakteri olması gerekir.

"Contoso\Administrator" | ConvertFrom-String -Delimiter "\\"
P1      P2
--      --
Contoso Administrator

Örnek 3: İki adlandırılmış özellik içeren bir nesne oluşturma

Aşağıdaki örnek, Windows konakları dosya girdilerinden nesneler oluşturur.

$content = Get-Content C:\Windows\System32\drivers\etc\hosts
$content = $content -match "^[^#]"
$content | ConvertFrom-String -PropertyNames IP, Server
IP             Server
--             ------
192.168.7.10   W2012R2
192.168.7.20   W2016
192.168.7.101  WIN8
192.168.7.102  WIN10

Get-Content cmdlet'i, windows konakları dosyasının içeriğini $contentiçinde depolar. İkinci komut, hosts dosyasının başındaki açıklamaları, ile başlamayan herhangi bir satırla eşleşen normal bir ifade kullanarak kaldırır (#). Son komut, kalan metni Server ve IP özelliklerine sahip nesnelere dönüştürür.

Örnek 4: TemplateContent parametresinin değeri olarak bir ifade kullanın, sonuçları bir değişkene kaydedin.

Bu komut, TemplateContent parametresinin değeri olarak bir ifade kullanır. İfade basitlik için bir değişkene kaydedilir. Windows PowerShell artık işlem hattında ConvertFrom-String için kullanılan dizenin üç özelliğe sahip olduğunu anlar:

  • İsim
  • telefon
  • yaş
$template = @'
{Name*:Phoebe Cat}, {phone:425-123-6789}, {age:6}
{Name*:Lucky Shot}, {phone:(206) 987-4321}, {age:12}
'@

$testText = @'
Phoebe Cat, 425-123-6789, 6
Lucky Shot, (206) 987-4321, 12
Elephant Wise, 425-888-7766, 87
Wild Shrimp, (111)  222-3333, 1
'@

$PersonalData = $testText | ConvertFrom-String -TemplateContent $template
Write-Output ("Pet items found: " + ($PersonalData.Count))
$PersonalData
Pet items found: 4

Name          phone           age
----          -----           ---
Phoebe Cat    425-123-6789    6
Lucky Shot    (206) 987-4321  12
Elephant Wise 425-888-7766    87
Wild Shrimp   (111)  222-3333 1

Girişteki her satır örnek eşleşmeler tarafından değerlendirilir. Çizgi, desende verilen örneklerle eşleşiyorsa, değerler ayıklanır ve çıkış değişkenine geçirilir.

$templateörnek veriler iki farklı telefon biçimi sağlar:

  • 425-123-6789
  • (206) 987-4321

Örnek veriler iki farklı yaş biçimi de sağlar:

  • 6
  • 12

Bu, (206) 987 4321 gibi telefonların tanınmayacağını gösterir çünkü kısa çizgi olmadığından bu desenle eşleşen örnek veri yoktur.

Örnek 5: Oluşturulan özelliklere veri türlerini belirtme

Bu, yukarıdaki Örnek 4 ile aynı örnektir. Fark, desen dizesinin istenen her özellik için bir veri türü içermesidir.

$template = @'
{[string]Name*:Phoebe Cat}, {[string]phone:425-123-6789}, {[int]age:6}
{[string]Name*:Lucky Shot}, {[string]phone:(206) 987-4321}, {[int]age:12}
'@

$testText = @'
Phoebe Cat, 425-123-6789, 6
Lucky Shot, (206) 987-4321, 12
Elephant Wise, 425-888-7766, 87
Wild Shrimp, (111)  222-3333, 1
'@

$PersonalData = $testText | ConvertFrom-String -TemplateContent $template
Write-Output ("Pet items found: " + ($PersonalData.Count))
$PersonalData
Pet items found: 4

Name          phone           age
----          -----           ---
Phoebe Cat    425-123-6789      6
Lucky Shot    (206) 987-4321   12
Elephant Wise 425-888-7766     87
Wild Shrimp   (111)  222-3333   1
$PersonalData | Get-Member
   TypeName: System.Management.Automation.PSCustomObject

Name        MemberType   Definition
----        ----------   ----------
Equals      Method       bool Equals(System.Object obj)
GetHashCode Method       int GetHashCode()
GetType     Method       type GetType()
ToString    Method       string ToString()
age         NoteProperty int age=6
Name        NoteProperty string Name=Phoebe Cat
phone       NoteProperty string phone=425-123-6789

Get-Member cmdlet'i, yaş özelliğinin bir tamsayı olduğunu göstermek için kullanılır.

Parametreler

-Delimiter

Öğeler arasındaki sınırı tanımlayan normal bir ifade belirtir. Bölme tarafından oluşturulan öğeler, sonuçta elde edilen nesnede özelliklere dönüşür. Sınırlayıcı, sonunda türündeki [System.Text.RegularExpressions.RegularExpression] yöntemine yapılan çağrıda kullanılır.

Parametre özellikleri

Tür:String
Default value:None
Joker karakterleri destekler:False
DontShow:False
Diğer adlar:DEL

Parametre kümeleri

ByDelimiter
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-IncludeExtent

Bu cmdlet'in varsayılan olarak kaldırılan bir extent metin özelliği içerdiğini gösterir.

Parametre özellikleri

Tür:SwitchParameter
Default value:None
Joker karakterleri destekler:False
DontShow:False
Diğer adlar:Internet Explorer

Parametre kümeleri

TemplateParsing
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-InputObject

İşlem hattından alınan dizeleri veya dize nesnesi içeren bir değişkeni belirtir.

Parametre özellikleri

Tür:String
Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:0
Zorunlu:True
İşlem hattından gelen değer:True
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-PropertyNames

Sonuçta elde edilen nesnede bölünmüş değerlerin atandığı özellik adları dizisini belirtir. Böldüğünüz veya ayrıştırdığınız her metin satırı, özellik değerlerini temsil eden öğeler oluşturur. öğesi bir yakalama grubunun sonucuysa ve bu yakalama grubu (örneğin, (?<name>) veya (?'name')) olarak adlandırılırsa, bu yakalama grubunun adı özelliğine atanır.

PropertyName dizisinde herhangi bir öğe sağlarsanız, bu adlar henüz adlandırılmamış özelliklere atanır.

Alanlardan daha fazla özellik adı sağlarsanız, PowerShell ek özellik adlarını yoksayar. Tüm alanları adlandırmak için yeterli özellik adı belirtmezseniz PowerShell, P1, P2vb. adlı özelliklere otomatik olarak sayısal özellik adları atar.

Parametre özellikleri

Tür:

String[]

Default value:None
Joker karakterleri destekler:False
DontShow:False
Diğer adlar:PN

Parametre kümeleri

ByDelimiter
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-TemplateContent

Bu cmdlet'in dize atadığı özellikleri açıklayan bir ifadeyi veya değişken olarak kaydedilen bir ifadeyi belirtir. Şablon alanı belirtiminin söz dizimi aşağıdaki gibidir: {[optional-typecast]<name>:<example-value>}.

Parametre özellikleri

Tür:

String[]

Default value:None
Joker karakterleri destekler:False
DontShow:False
Diğer adlar:TC

Parametre kümeleri

TemplateParsing
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-TemplateFile

Dizenin istenen ayrıştırılması için şablon içeren bir dosyayı dizi olarak belirtir. Şablon dosyasında, aşağıda gösterildiği gibi özellikler ve değerleri köşeli ayraç içine alınır. Name özelliği ve ilişkili diğer özellikleri gibi bir özellik birden çok kez görünürse, bunun birden çok kayıtla sonuçlandığını belirtmek için yıldız işareti (*) ekleyebilirsiniz. Bu, birden çok özelliğin tek bir kayıtta ayıklanmasından kaçınılır.

{Name*:David Chew}
{City:Redmond}, {State:WA}
{Name*:Evan Narvaez}    {Name*:Antonio Moreno}
{City:Issaquah}, {State:WA}

Parametre özellikleri

Tür:

String[]

Default value:None
Joker karakterleri destekler:False
DontShow:False
Diğer adlar:TF (İngilizce)

Parametre kümeleri

TemplateParsing
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-UpdateTemplate

Bu cmdlet'in bir öğrenme algoritmasının sonuçlarını şablon dosyasındaki bir açıklamaya kaydettiğini gösterir. Bu, algoritma öğrenme sürecini hızlandırır. Bu parametreyi kullanmak için TemplateFile parametresine sahip bir şablon dosyası da belirtmeniz gerekir.

Parametre özellikleri

Tür:SwitchParameter
Default value:None
Joker karakterleri destekler:False
DontShow:False
Diğer adlar:UT

Parametre kümeleri

TemplateParsing
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

CommonParameters

Bu cmdlet yaygın parametreleri destekler: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction ve -WarningVariable. Daha fazla bilgi için bkz. about_CommonParameters.

Girişler

String

Çıkışlar

PSCustomObject

Notlar

Windows PowerShell, ConvertFrom-Stringiçin aşağıdaki diğer adları içerir:

  • CFS