ConvertFrom-StringData
Egy vagy több kulcs- és értékpárt tartalmazó sztringet kivonattáblává alakít át.
Syntax
Default (Alapértelmezett)
ConvertFrom-StringData
[-StringData] <String>
[[-Delimiter] <Char>]
[<CommonParameters>]
Description
A ConvertFrom-StringData parancsmag egy egy vagy több kulcs- és értékpárt tartalmazó sztringet konvertál kivonattáblává. Mivel minden kulcs-érték párnak külön sorban kell lennie, az itt szereplő sztringeket gyakran használják bemeneti formátumként. Alapértelmezés szerint a kulcsot el kell különíteni a értéktől egyenlőségjel (=) karakterrel.
A ConvertFrom-StringData parancsmag biztonságos parancsmagnak minősül, amely egy szkript vagy függvény data szakaszában használható. Ha data szakaszban használják, a sztring tartalmának meg kell felelnie egy data szakasz szabályainak. További információkért lásd: about_Data_Sections.
ConvertFrom-StringData támogatja a hagyományos gépi fordítási eszközök által engedélyezett feloldó karaktersorozatokat. Ez azt jelzi, hogy a parancsmag a sztringadatokban lévő fordított perjeleket (\) a Regex.Unescape metódushasználatával tudja értelmezni a PowerShell-háttérjel (`) helyett, amely általában egy szkript sorának végét jelzi.
Az itt található sztringben a fordított aposztróf nem működik. A konstans fordított perjelet úgy is megőrizheti az eredményekben, hogy egy korábbi fordított perjelet használ, például a következőt: \\. A lezáratlan fordított perjel karakterek, például a fájlelérési utakban gyakran használt karakterek illegális feloldósorozatként jeleníthetők meg az eredményekben.
A PowerShell 7 hozzáadja a elválasztó paramétert.
Példák
1. példa: Egyetlen idézőjeles szövegsor átalakítása hash táblává
Ez a példa a felhasználói üzenetek egyetlen idézőjeles sztringét konvertálja kivonattáblává. Egy idézőjeles sztringben az értékek nem helyettesítik a változókat, és a kifejezések kiértékelése nem történik meg.
A ConvertFrom-StringData parancsmag a $Here változó értékét kivonattáblává alakítja.
$Here = @'
Msg1 = The string parameter is required.
Msg2 = Credentials are required for this command.
Msg3 = The specified variable doesn't exist.
'@
ConvertFrom-StringData -StringData $Here
Name Value
---- -----
Msg3 The specified variable doesn't exist.
Msg2 Credentials are required for this command.
Msg1 The string parameter is required.
2. példa: Sztringadatok konvertálása másik elválasztójel használatával
Ez a példa bemutatja, hogyan konvertálhatók olyan sztringadatok, amelyek egy másik karaktert használnak elválasztóként. Ebben a példában a sztringadatok elválasztóként a cső karaktert (|) használják.
$StringData = @'
color|red
model|coupe
year|1965
condition|mint
'@
$carData = ConvertFrom-StringData -StringData $StringData -Delimiter '|'
$carData
Name Value
---- -----
condition mint
model coupe
color red
year 1965
3. példa: Megjegyzést tartalmazó here-sztring konvertálása
Ez a példa egy megjegyzést és több kulcs-érték párot tartalmazó here-sztringet konvertál kivonattáblává.
ConvertFrom-StringData -StringData @'
Name = Disks.ps1
# Category is optional.
Category = Storage
Cost = Free
'@
Name Value
---- -----
Cost Free
Category Storage
Name Disks.ps1
A StringData paraméter értéke egy here-sztring, nem pedig egy here-sztringet tartalmazó változó. Bármelyik formátum érvényes. Az itt-szöveg egy megjegyzést tartalmaz az egyik karakterláncról.
ConvertFrom-StringData figyelmen kívül hagyja az egysoros megjegyzéseket, de a kivonat karakternek (#) kell lennie a sor első nem szóköz karakterének.
4. példa: Sztring konvertálása kivonattáblázattá
Ez a példa egy hagyományos dupla idézőjeles karakterláncot (nem itt-sztring) alakít át hash táblává, és menti a $A változóba.
$A = ConvertFrom-StringData -StringData "Top = Red `n Bottom = Blue"
$A
Name Value
---- -----
Bottom Blue
Top Red
Annak a feltételnek való megfelelés érdekében, hogy minden kulcs-érték párnak külön sorban kell lennie, a sztring a PowerShell újvonalas karakterét (`n) használja a párok elválasztásához.
5. példa: Használat egy szkript "adatok" szakaszában
Ez a példa egy szkript ConvertFrom-StringData szakaszában használt data parancsot mutatja be.
A data szakasz alatti utasítások a felhasználó számára jelenítik meg a szöveget.
$TextMsgs = data {
ConvertFrom-StringData @'
Text001 = The $Notebook variable contains the name of the user's system notebook.
Text002 = The $MyNotebook variable contains the name of the user's private notebook.
'@
}
$TextMsgs
Name Value
---- -----
Text001 The $Notebook variable contains the name of the user's system notebook.
Text002 The $MyNotebook variable contains the name of the user's private notebook.
Mivel a szöveg változóneveket tartalmaz, egyes idézőjelek között szerepelő karakterláncba kell kerülnie, hogy a változók szó szerint legyenek értelmezve, ne legyenek feldolgozva. A változók nem engedélyezettek a data szakaszban.
6. példa: Sztring átadása a pipeline operátorral
Ez a példa bemutatja, hogy egy csővezeték operátor (|) használatával sztringet küldhet a ConvertFrom-StringData-re. A $Here változó értéke átvitelre kerül a ConvertFrom-StringData-be, az eredmény pedig a $Hash változóban található.
$Here = @'
Msg1 = The string parameter is required.
Msg2 = Credentials are required for this command.
Msg3 = The specified variable doesn't exist.
'@
$Hash = $Here | ConvertFrom-StringData
$Hash
Name Value
---- -----
Msg3 The specified variable doesn't exist.
Msg2 Credentials are required for this command.
Msg1 The string parameter is required.
7. példa: Feloldó karakterek használata új sorok hozzáadásához és karakterek visszaadásához
Ez a példa azt mutatja be, hogy a feloldó karakterek használatával új sorokat hozhat létre, és karaktereket ad vissza a forrásadatokban. A feloldósorozat-\n új sorokat hoz létre egy szövegblokkon belül, amely az eredményül kapott kivonattáblában lévő névvel vagy elemgel van társítva.
ConvertFrom-StringData @"
Vincentio = Heaven doth with us as we with torches do,\nNot light them for themselves; for if our virtues\nDid not go forth of us, 'twere all alike\nAs if we had them not.
Angelo = Let there be some more test made of my metal,\nBefore so noble and so great a figure\nBe stamp'd upon it.
"@ | Format-List
Name : Angelo
Value : Let there be some more test made of my metal,
Before so noble and so great a figure
Be stamp'd upon it.
Name : Vincentio
Value : Heaven doth with us as we with torches do,
Not light them for themselves; for if our virtues
Didn't go forth of us, 'twere all alike
As if we had them not.
8. példa: Fordított perjeles feloldó karakter használata a fájl elérési útjának helyes megjelenítéséhez
Ez a példa bemutatja, hogyan használható a fordított perjel feloldó karaktere a sztringadatokban, hogy a fájl elérési útja megfelelően jelenjen meg az eredményül kapott ConvertFrom-StringData kivonattáblában. A kettős visszaperjel biztosítja, hogy a literális visszaperjelek megfelelően jelenjenek meg a hash tábla kimenetében.
ConvertFrom-StringData "Message=Look in C:\\Windows\\System32"
Name Value
---- -----
Message Look in C:\Windows\System32
Paraméterek
-Delimiter
A karakter, amelyet a kulcs és a érték adatainak elválasztására használnak a konvertált sztringben.
Az alapértelmezett elválasztójel az egyenlőségjel (=) karakter. Ez a paraméter a PowerShell 7-ben lett hozzáadva.
Paramétertulajdonságok
| Típus: | Char |
| Alapértelmezett érték: | = |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
(All)
| Position: | 1 |
| 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 |
-StringData
A konvertálni kívánt sztringet adja meg. Használhatja ezt a paramétert, vagy stringet adhat át a csövön a ConvertFrom-StringData-hoz. A paraméter neve nem kötelező.
A paraméter értékének olyan sztringnek kell lennie, amely egy vagy több kulcs-érték párot tartalmaz. Minden kulcs-érték párnak külön sorban kell lennie, vagy az egyes párokat új karakterekkel (`n) kell elválasztani.
Megjegyzéseket is felvehet a sztringbe, de a megjegyzések nem lehetnek ugyanazon a sorban, mint egy kulcs-érték pár.
ConvertFrom-StringData figyelmen kívül hagyja az egysoros megjegyzéseket. A hashmark (#) legyen a sor első nem szóköz karaktere. A kivonatkarakterek (#) utáni sor minden karakterét figyelmen kívül hagyja a rendszer. A megjegyzések nem szerepelnek a kivonattáblában.
A here-string egy vagy több sorból álló karakterlánc. Az itt szereplő sztringen belüli idézőjelek szó szerint a sztringadatok részeként lesznek értelmezve. További információk az about_Quoting_Rules oldalon találhatók: .
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 |
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
Ehhez a parancsmaghoz egy kulcs-érték párot tartalmazó sztringet csövezhet.
Kimenetek
Hashtable
Ez a parancsmag egy kivonattáblát ad vissza, amelyet a kulcs-érték párokból hoz létre.
Jegyzetek
A here-string egy olyan többsorból álló sztring, amelyben az idézőjelek szó szerint értelmezendők.
Ez a parancsmag olyan szkriptekben lehet hasznos, amelyek több beszélt nyelven jelenítik meg a felhasználói üzeneteket. A szótárstílusú kivonattáblákkal elválaszthatja a szövegsztringeket a kódtól, például az erőforrásfájlokban, és formázhatja a szövegsztringeket a fordítóeszközökben való használatra.