Megosztás a következőn keresztül:


ConvertFrom-String

Kinyeri és elemzi a strukturált tulajdonságokat a sztringtartalomból.

Syntax

ByDelimiter (Alapértelmezett)

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

TemplateParsing

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

Description

A ConvertFrom-String parancsmag kinyeri és elemzi a sztringtartalom strukturált tulajdonságait. Ez a parancsmag egy objektumot hoz létre egy hagyományos szövegstream szövegének elemzésével. A folyamat minden sztringjéhez a parancsmag elválasztó vagy elemző kifejezéssel osztja fel a bemenetet, majd tulajdonságneveket rendel az eredményül kapott felosztási elemekhez. Ezeket a tulajdonságneveket megadhatja; ha nem, automatikusan létrejönnek az Ön számára.

A parancsmag alapértelmezett paraméterkészlete, ByDelimiter, pontosan a reguláris kifejezéselválasztóra oszlik. Nem végez idézőjel-egyeztetést vagy elválasztójelet a Import-Csv parancsmaghoz hasonlóan.

A parancsmag alternatív paraméterkészlete, TemplateParsing, olyan elemeket hoz létre a csoportokból, amelyeket egy reguláris kifejezés rögzít.

Ez a parancsmag két módot támogat: alapszintű tagolt elemzést és automatikusan generált, példaalapú elemzést.

A tagolt elemzés alapértelmezés szerint felosztja a bemenetet a szóközzel, és tulajdonságneveket rendel az eredményként kapott csoportokhoz. A határolót úgy szabhatja testre, hogy a ConvertFrom-String eredményeket a Format-* parancsmagok egyikére alakítja, vagy használhatja a elválasztó paramétert.

A parancsmag támogatja a Microsoft Researcháltal végzett FlashExtract alapján automatikusan létrehozott, példaalapú elemzést is.

Példák

1. példa: Objektum létrehozása alapértelmezett tulajdonságnevekkel

PS C:\> "Hello World" | ConvertFrom-String

P1    P2
--    --
Hello World


PS C:\>

Ez a parancs létrehoz egy objektumot az alapértelmezett tulajdonságnevekkel( P1 és P2). Az eredmények: P1="Hello" és P2="World".

1A. példa: A létrehozott objektum megismerése

PS C:\> "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


PS C:\>

A parancs egy P1, P2 tulajdonságú objektumot hoz létre; alapértelmezés szerint mindkét tulajdonság "sztring" típusú.

2. példa: Alapértelmezett tulajdonságnevekkel rendelkező objektum létrehozása elválasztójel használatával

PS C:\> "Hello World" | ConvertFrom-String -Delimiter "ll"

P1 P2
-- --
He o World


PS C:\>

Ez a parancs létrehoz egy objektumot P1="He" és P2="o World" tulajdonsággal, ha elválasztóként megadja a Hello "ll" tulajdonságát.

3. példa: Két elnevezett tulajdonságot tartalmazó objektum létrehozása

PS C:\> "Hello World" | ConvertFrom-String -PropertyNames FirstWord, SecondWord

FirstWord SecondWord
--------- ----------
Hello     World


PS C:\>

Ez a parancs létrehoz egy objektumot, amely két tulajdonságot tartalmaz:

  • FirstWord, "Hello" értékkel
  • SecondWord, "World" értékkel

4. példa: Használjon kifejezést a TemplateContent paraméter értékeként, mentse az eredményeket egy változóba.

$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
'@

$testText  |
    ConvertFrom-String -TemplateContent $template -OutVariable PersonalData |
    Out-Null

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

C:\ >

Ez a parancs egy kifejezést használ a TemplateContent paraméter értékeként. A kifejezés az egyszerűség kedvéért egy változóba lesz mentve. A Windows PowerShell most már tudja, hogy a folyamaton a ConvertFrom-String használt sztring három tulajdonsággal rendelkezik:

  • Név
  • telefon
  • kor

A bemenet minden sorát a minta egyezések értékelik ki; ha a sor megfelel a mintában megadott példáknak, az értékek kinyerése és továbbítása a definiált kimeneti változónak.

A $templatemintaadatok két különböző telefonos formátumot biztosítanak:

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

És két különböző korforma:

  • 6
  • 12

Ez azt jelenti, hogy az olyan telefonok, mint a (206) 987 4321 nem lesznek felismerve, mert nincs olyan mintaadat, amely megfelel a mintának (nincs kötőjel a háromjegyű sorozat és a négyjegyű sorozat között). A 3 vagy több számjegy korához hasonlóak, nem lesznek felismerve.

5. példa: Adattípusok megadása a létrehozott tulajdonságokhoz

$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
'@

$testText  |
    ConvertFrom-String -TemplateContent $template -OutVariable PersonalData | Out-Null

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



C:\ >

Ez ugyanaz a példa, mint a fenti 4. szám; az egyetlen különbség a mintasztringben van, amely minden egyes kívánt tulajdonsághoz tartalmaz adattípust. Figyelje meg a koroszlop igazításának különbségét mindkét példa között.

5A. példa: A létrehozott objektum megismerése

 $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
 '@

 $testText  |
     ConvertFrom-String -TemplateContent $template -OutVariable PersonalData |
     Out-Null

 $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

C:\ >

Get-Member az életkor egész szám típusú.

Paraméterek

-Delimiter

Olyan reguláris kifejezést ad meg, amely azonosítja az elemek közötti határt. A felosztás által létrehozott elemek tulajdonságokká válnak az eredményül kapott objektumban. A határolót végül a System.Text.RegularExpressions.RegularExpression.Split() hívása használja.

Paramétertulajdonságok

Típus:String
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False
Aliasok:DEL

Paraméterkészletek

ByDelimiter
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-IncludeExtent

Azt jelzi, hogy ez a parancsmag tartalmaz egy olyan mértékszöveg-tulajdonságot, amely alapértelmezés szerint el lett távolítva.

Paramétertulajdonságok

Típus:SwitchParameter
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False
Aliasok:Internet Explorer (IE)

Paraméterkészletek

TemplateParsing
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-InputObject

Megadja a folyamattól kapott sztringeket vagy egy sztringobjektumot tartalmazó változót.

Paramétertulajdonságok

Típus:String
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:0
Kötelező:True
Folyamatból származó érték:True
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-PropertyNames

Olyan tulajdonságneveket tartalmazó tömböt ad meg, amelyhez felosztott értékeket rendelhet az eredményként kapott objektumhoz. Minden felosztott vagy elemzett szövegsor olyan elemeket hoz létre, amelyek tulajdonságértékeket jelölnek. Ha az elem egy rögzítési csoport eredménye, és a rögzítési csoport neve el van nevezve (például (?<name>) vagy (?'name')), akkor az adott rögzítési csoport neve lesz hozzárendelve a tulajdonsághoz.

Ha a PropertyName tömb bármely elemét megadja, ezek a nevek a még el nem nevezett tulajdonságokhoz lesznek hozzárendelve.

Ha több tulajdonságnevet ad meg, mint amennyi mező van, a Windows PowerShell figyelmen kívül hagyja a további tulajdonságneveket. Ha nem ad meg elegendő tulajdonságnevet az összes mező elnevezéséhez, a Windows PowerShell automatikusan numerikus tulajdonságneveket rendel a nem elnevezett tulajdonságokhoz: P1, P2 stb.

Paramétertulajdonságok

Típus:

String[]

Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False
Aliasok:PN

Paraméterkészletek

ByDelimiter
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-TemplateContent

Olyan kifejezést vagy változóként mentett kifejezést határoz meg, amely leírja, hogy a parancsmag milyen tulajdonságokhoz rendel sztringeket. A sablonmező-specifikáció szintaxisa a következő: {[optional-typecast]name(sequence-spec, például *):example-value}. Példa: {PersonInfo*:{Name:Patti Fuller}.

Paramétertulajdonságok

Típus:

String[]

Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False
Aliasok:TC

Paraméterkészletek

TemplateParsing
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-TemplateFile

Tömbként megadott fájl, amely a sztring kívánt elemzéséhez tartalmaz sablont. A sablonfájlban a tulajdonságok és értékük szögletes zárójelek közé kerülnek, ahogyan az alábbi példában is látható. Ha egy tulajdonság, például a Név tulajdonság és a hozzá tartozó egyéb tulajdonságok többször is megjelennek, csillag (*) hozzáadásával jelezheti, hogy ez több rekordot eredményez. Így elkerülhető, hogy több tulajdonságot nyerjen ki egyetlen rekordba.

{Name*:David Chew}

{City:Redmond}, {State:WA}

{Name*:Evan Narvaez}    {Name*:Antonio Moreno}

{City:Issaquah}, {State:WA}

Paramétertulajdonságok

Típus:

String[]

Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False
Aliasok:TF

Paraméterkészletek

TemplateParsing
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-UpdateTemplate

Azt jelzi, hogy ez a parancsmag egy tanulási algoritmus eredményeit egy megjegyzésbe menti a sablonfájlban. Ez felgyorsítja az algoritmus tanulási folyamatát. A paraméter használatához meg kell adnia egy sablonfájlt is a TemplateFile paraméterrel.

Paramétertulajdonságok

Típus:SwitchParameter
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False
Aliasok:UT

Paraméterkészletek

TemplateParsing
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

CommonParameters

Ez a parancsmag a következő gyakori paramétereket támogatja: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction és -WarningVariable. További információért lásd about_CommonParameters.

Bevitelek

String