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. A reguláris kifejezésekről további információt a about_Regular_Expressionscímű témakörben talál.

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 az egyik Format-* parancsmagba pipálja, 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

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

Ez a parancs létrehoz egy objektumot alapértelmezett tulajdonságnevekkel, P1 és P2.

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

Ez a parancs létrehoz egy objektumot P1tulajdonságokkal, P2; Alapértelmezés szerint mindkét tulajdonság sztring típusú.

"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

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

Ez a parancs létrehoz egy tartományt és felhasználónevet tartalmazó objektumot, amely elválasztóként a fordított perjelet (\) használja. A fordított perjel karaktert egy másik fordított perjellel kell feloldani normál kifejezések használatakor.

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

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

Az alábbi példa objektumokat hoz létre a Windows-gazdagépek fájlbejegyzéseiből.

$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

A Get-Content parancsmag egy Windows-gazdagépfájl tartalmát $contenttárolja. A második parancs a gazdagépfájl elején lévő megjegyzéseket egy reguláris kifejezéssel távolítja el, amely megfelel a (#) kezdetű sornak. Az utolsó parancs a fennmaradó szöveget kiszolgálói és IP- tulajdonságokkal rendelkező objektumokká alakítja.

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

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 ConvertFrom-String használt sztring három tulajdonsággal rendelkezik:

  • Név
  • telefon
  • kor
$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

A bemenet minden sorát a minta egyezések értékelik ki. Ha a sor megfelel a mintában megadott példáknak, a rendszer kinyeri az értékeket, és átadja a kimeneti változónak.

A mintaadatok ($template) két különböző telefonos formátumot biztosítanak:

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

A mintaadatok két különböző korformátumot is biztosítanak:

  • 6
  • 12

Ez azt jelenti, hogy a (206) 987 4321-hez hasonló telefonok nem lesznek felismerve, mert nincs olyan mintaadat, amely megfelel az adott mintának, mert nincsenek kötőjelek.

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

Ez ugyanaz a példa, mint a fenti 4. példa. A különbség az, hogy a mintasztring minden kívánt tulajdonsághoz tartalmaz egy adattípust.

$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

A Get-Member parancsmag azt jelzi, hogy a kor tulajdonság egész szám.

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 típusú [System.Text.RegularExpressions.RegularExpression]metódus hívásához használják.

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 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 PowerShell automatikusan numerikus tulajdonságneveket rendel a nem elnevezett tulajdonságokhoz: P1, P2stb.

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>:<example-value>}.

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, ahogy az alább 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, csillagot (*) adhat hozzá, amely azt jelzi, 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

Kimenetek

PSCustomObject

Jegyzetek

A Windows PowerShell a ConvertFrom-Stringkövetkező aliasait tartalmazza:

  • CFS