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
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:
612
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