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
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
- 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.