ConvertFrom-StringData
Converteert een tekenreeks met een of meer sleutel- en waardeparen naar een hash-tabel.
Syntax
ConvertFrom-StringData
[-StringData] <String>
[[-Delimiter] <Char>]
[<CommonParameters>]
Description
De ConvertFrom-StringData cmdlet converteert een tekenreeks die een of meer sleutel- en waardeparen bevat naar een hash-tabel. Omdat elk sleutel-waardepaar zich op een afzonderlijke regel moet bevinden, worden hier tekenreeksen vaak gebruikt als invoerindeling. De sleutel moet standaard worden gescheiden van de waarde door een gelijkteken (=) teken.
De ConvertFrom-StringData cmdlet wordt beschouwd als een veilige cmdlet die kan worden gebruikt in de sectie DATA van een script of functie. Wanneer de inhoud van de tekenreeks wordt gebruikt in een sectie DATA , moet deze voldoen aan de regels voor een sectie DATA . Zie about_Data_Sections voor meer informatie.
ConvertFrom-StringData ondersteunt escape-tekenreeksen die zijn toegestaan door conventionele hulpprogramma's voor automatisch vertalen. Dat wil zeggen dat de cmdlet backslashes (\) kan interpreteren als escapetekens in de tekenreeksgegevens met behulp van de methode Regex.Unescape, in plaats van het PowerShell-backtickteken (`) dat normaal gesproken het einde van een regel in een script aangeeft.
In de hier-tekenreeks werkt het teken backtick niet. U kunt ook een letterlijke backslash in uw resultaten behouden door deze te ontsnappen aan een voorgaande backslash, zoals hier: \\. Niet-gescaped backslash-tekens, zoals tekens die vaak worden gebruikt in bestandspaden, kunnen worden weergegeven als illegale escapereeksen in uw resultaten.
PowerShell 7 voegt de parameter Scheidingsteken toe .
Voorbeelden
Voorbeeld 1: Hier een enkele aanhalingstekenreeks converteren naar een hash-tabel
In dit voorbeeld wordt hier een enkele aanhalingstekenreeks met gebruikersberichten geconverteerd naar een hash-tabel. In een tekenreeks met één aanhalingsteken worden waarden niet vervangen door variabelen en expressies worden ze niet geëvalueerd.
De ConvertFrom-StringData cmdlet converteert de waarde in de $Here variabele naar een hash-tabel.
$Here = @'
Msg1 = The string parameter is required.
Msg2 = Credentials are required for this command.
Msg3 = The specified variable does not exist.
'@
ConvertFrom-StringData -StringData $Here
Name Value
---- -----
Msg3 The specified variable does not exist.
Msg2 Credentials are required for this command.
Msg1 The string parameter is required.
Voorbeeld 2: tekenreeksgegevens converteren met een ander scheidingsteken
In dit voorbeeld ziet u hoe u tekenreeksgegevens converteert die een ander teken als scheidingsteken gebruiken. In dit voorbeeld gebruiken de tekenreeksgegevens het pipeteken (|) als scheidingsteken.
$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
Voorbeeld 3: Een hier-tekenreeks met een opmerking converteren
In dit voorbeeld wordt een hier-tekenreeks geconverteerd die een opmerking en meerdere sleutel-waardeparen bevat in een hashtabel.
ConvertFrom-StringData -StringData @'
Name = Disks.ps1
# Category is optional.
Category = Storage
Cost = Free
'@
Name Value
---- -----
Cost Free
Category Storage
Name Disks.ps1
De waarde van de parameter StringData is een hier-tekenreeks, in plaats van een variabele die hier een tekenreeks bevat. Beide indelingen zijn geldig. De hier-tekenreeks bevat een opmerking over een van de tekenreeksen.
ConvertFrom-StringData negeert opmerkingen met één regel, maar het # teken moet het eerste niet-witruimteteken op de regel zijn. Alle tekens op de regel nadat de # regel is genegeerd.
Voorbeeld 4: Een tekenreeks converteren naar een hash-tabel
In dit voorbeeld wordt een gewone tekenreeks met dubbele aanhalingstekens (niet een hier-tekenreeks) geconverteerd naar een hashtabel en opgeslagen in de $A variabele.
$A = ConvertFrom-StringData -StringData "Top = Red `n Bottom = Blue"
$A
Name Value
---- -----
Bottom Blue
Top Red
Om te voldoen aan de voorwaarde dat elk sleutel-waardepaar zich op een afzonderlijke regel moet bevinden, gebruikt de tekenreeks het nieuwe regelteken van PowerShell (`n) om de paren te scheiden.
Voorbeeld 5: gebruik ConvertFrom-StringData in de sectie GEGEVENS van een script
In dit voorbeeld ziet u een ConvertFrom-StringData opdracht die wordt gebruikt in de sectie DATA van een script.
In de instructies onder de sectie DATA wordt de tekst voor de gebruiker weergegeven.
$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.
Omdat de tekst variabelenamen bevat, moet deze worden ingesloten in een tekenreeks met één aanhalingsteken, zodat de variabelen letterlijk worden geïnterpreteerd en niet worden uitgevouwen. Variabelen zijn niet toegestaan in de sectie GEGEVENS .
Voorbeeld 6: De pijplijnoperator gebruiken om een tekenreeks door te geven
In dit voorbeeld ziet u dat u een pijplijnoperator (|) kunt gebruiken om een tekenreeks naar ConvertFrom-StringDatate verzenden. De waarde van de $Here variabele wordt doorgesluisd naar ConvertFrom-StringData en het resultaat in de $Hash variabele.
$Here = @'
Msg1 = The string parameter is required.
Msg2 = Credentials are required for this command.
Msg3 = The specified variable does not exist.
'@
$Hash = $Here | ConvertFrom-StringData
$Hash
Name Value
---- -----
Msg3 The specified variable does not exist.
Msg2 Credentials are required for this command.
Msg1 The string parameter is required.
Voorbeeld 7: Escape-tekens gebruiken om nieuwe regels toe te voegen en tekens te retourneren
In dit voorbeeld ziet u het gebruik van escape-tekens om nieuwe regels te maken en tekens in brongegevens te retourneren. De escapereeks \n wordt gebruikt om nieuwe regels te maken binnen een blok tekst dat is gekoppeld aan een naam of item in de resulterende hashtabel.
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
Did not go forth of us, 'twere all alike
As if we had them not.
Voorbeeld 8: Backslash escape-teken gebruiken om een bestandspad correct weer te geven
In dit voorbeeld ziet u hoe u het escapeteken backslash gebruikt in de tekenreeksgegevens, zodat een bestandspad correct kan worden weergegeven in de resulterende ConvertFrom-StringData hashtabel. De dubbele backslash zorgt ervoor dat de letterlijke backslash-tekens correct worden weergegeven in de hashtabel-uitvoer.
ConvertFrom-StringData "Message=Look in c:\\Windows\\System32"
Name Value
---- -----
Message Look in c:\Windows\System32
Parameters
Het teken dat wordt gebruikt om de sleutel te scheiden van de waardegegevens in de tekenreeks die wordt geconverteerd.
Het standaardscheidingsteken is het gelijkteken (=). Deze parameter is toegevoegd in PowerShell 7.
| Type: | Char |
| Position: | 0 |
| Default value: | '=' |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Hiermee geeft u de tekenreeks die moet worden geconverteerd. U kunt deze parameter gebruiken of een tekenreeks doorsluisen naar ConvertFrom-StringData. De parameternaam is optioneel.
De waarde van deze parameter moet een tekenreeks zijn die een of meer sleutel-waardeparen bevat. Elk sleutel-waardepaar moet zich op een afzonderlijke regel bevinden of elk paar moet worden gescheiden door nieuwe regeltekens (`n).
U kunt opmerkingen opnemen in de tekenreeks, maar de opmerkingen kunnen niet op dezelfde regel staan als een sleutel-waardepaar. ConvertFrom-StringData negeert opmerkingen met één regel. Het # teken moet het eerste niet-witruimteteken op de regel zijn. Alle tekens op de regel nadat de # regel is genegeerd. De opmerkingen worden niet opgenomen in de hash-tabel.
Een hier-tekenreeks is een tekenreeks die bestaat uit een of meer regels. Aanhalingstekens binnen de hier-tekenreeks worden letterlijk geïnterpreteerd als onderdeel van de tekenreeksgegevens. Zie about_Quoting_Rules voor meer informatie.
| Type: | String |
| Position: | 0 |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
Invoerwaarden
U kunt een tekenreeks met een sleutel-waardepaar doorsluisen naar ConvertFrom-StringData.
Uitvoerwaarden
Deze cmdlet retourneert een hash-tabel die wordt gemaakt op basis van de sleutel-waardeparen.
Notities
Een hier-tekenreeks is een tekenreeks die bestaat uit een of meer regels waarin aanhalingstekens letterlijk worden geïnterpreteerd.
Deze cmdlet kan handig zijn in scripts waarmee gebruikersberichten in meerdere gesproken talen worden weergegeven. U kunt de hashtabellen in woordenlijststijl gebruiken om teksttekenreeksen te isoleren van code, zoals in resourcebestanden, en om de tekenreeksen op te maken voor gebruik in vertaalhulpmiddelen.
Feedback
Feedback verzenden en weergeven voor