Konvertiert eine Zeichenfolge, die mindestens ein Schlüssel-Wert-Paar enthält, in eine Hashtabelle.

Syntax

ConvertFrom-StringData [-StringData] <string> [<CommonParameters>]

Beschreibung

Mit dem Cmdlet "ConvertFrom-StringData" wird eine Zeichenfolge, die eines oder mehrere Schlüssel-Wert-Paare enthält, in eine Hashtabelle konvertiert. Da sich jedes Schlüssel-Wert-Paar in einer eigenen Zeile befinden muss, werden als Eingabeformat häufig here-Zeichenfolgen verwendet.

Das Cmdlet "ConvertFrom-StringData" gilt als sicheres Cmdlet, das im DATA-Abschnitt eines Skripts oder einer Funktion verwendet werden kann. Bei Verwendung in einem DATA-Abschnitt muss der Inhalt der Zeichenfolge den Regeln für den DATA-Abschnitt entsprechen. Weitere Informationen finden Sie unter "about_Data_Sections".

Parameter

-StringData <string>

Gibt die zu konvertierende Zeichenfolge an. Sie können diesen Parameter verwenden oder eine Zeichenfolge über die Pipeline an ConvertFrom-StringData übergeben. Der Parametername ist optional.

Der Wert dieses Parameters muss einer in einfache Anführungszeichen eingeschlossenen Zeichenfolge, einer in doppelte Anführungszeichen eingeschlossenen Zeichenfolge oder einer here-Zeichenfolge entsprechen, die mindestens ein Schlüssel-Wert-Paar enthält. Jedes Schlüssel-Wert-Paar muss sich in einer eigenen Zeile befinden oder durch Zeilenumbruchzeichen (`n) von anderen Paaren getrennt sein.

Sie können Kommentare in die Zeichenfolge einschließen, jedoch dürfen sich die Kommentare nicht in derselben Zeile wie ein Schlüssel-Wert-Paar befinden. Die Kommentare sind nicht in der Hashtabelle enthalten.

Eine here-Zeichenfolge ist eine Zeichenfolge, die aus einer oder mehreren Zeilen besteht, in denen Anführungszeichen buchstäblich interpretiert werden. Weitere Informationen finden Sie unter "about_Quoting_Rules".

Erforderlich?

true

Position?

1

Standardwert

Pipelineeingaben akzeptieren?

true (ByValue)

Platzhalterzeichen akzeptieren?

false

<CommonParameters>

Dieses Cmdlet unterstützt die folgenden allgemeinen Parameter: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer und -OutVariable. Weitere Informationen finden Sie unter about_Commonparameters.

Eingaben und Ausgaben

Der Eingabetyp ist der Typ der Objekte, die über die Pipeline an das Cmdlet übergeben werden können. Der Rückgabetyp ist der Typ der Objekte, die das Cmdlet zurückgibt.

Eingaben

System.String

Sie können eine Zeichenfolge, die ein Schlüssel-Wert-Paar enthält, über die Pipeline an ConvertFrom-StringData übergeben.

Ausgaben

System.Collections.Hashtable

ConvertFrom-StringData gibt eine Hashtabelle zurück, die aus den Schlüssel-Wert-Paaren erstellt wird.

Hinweise

Eine here-Zeichenfolge ist eine Zeichenfolge, die aus einer oder mehreren Zeilen besteht, in denen Anführungszeichen buchstäblich interpretiert werden. Weitere Informationen finden Sie unter "about_Quoting_Rules".

ConvertFrom-StringData kann in Skripts hilfreich sein, die Benutzermeldungen in mehreren Sprachen anzeigen. Sie können die wie Wörterbücher strukturierten Hashtabellen verwenden, um Textzeichenfolgen von Code zu isolieren (z. B. in Ressourcendateien) und die Textzeichenfolgen für die Verwendung in Übersetzungstools zu formatieren.

Beispiel 1

C:\PS>$here = @'
Msg1 = The string parameter is required.
Msg2 = Credentials are required for this command.
Msg3 = The specified variable does not exist.
'@

C:\PS> 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.

Beschreibung
-----------
Mit diesen Befehlen wird eine in einfache Anführungszeichen eingeschlossene here-Zeichenfolge von Benutzermeldungen in eine Hashtabelle konvertiert. Werte in einer Zeichenfolge in einfachen Anführungszeichen werden nicht als Variablen ersetzt, und Ausdrücke werden nicht ausgewertet.

Im ersten Befehl wird eine here-Zeichenfolge erstellt und in der Variablen "$here" gespeichert. 

Im zweiten Befehl wird die here-Zeichenfolge in der Variablen "$here" mit dem Cmdlet "ConvertFrom-StringData" in eine Hashtabelle konvertiert.






Beispiel 2

C:\PS>$p = @"
ISE = Windows PowerShell Integrated Scripting Environment
"@

C:\PS> $p | get-member

   TypeName: System.String

Name             MemberType            Definition
----             ----------            ----------
Clone            Method                System.Object Clone()
...


C:\PS> $hash = convertfrom-stringdata -stringdata $p

C:\PS> $hash | get-member

   TypeName: System.Collections.Hashtable

Name              MemberType            Definition
----              ----------            ----------
Add               Method                System.Void Add(Object key, Object
...

Beschreibung
-----------
Diese Befehle veranschaulichen, dass ConvertFrom-StringData tatsächlich eine here-Zeichenfolge in eine Hashtabelle konvertiert.

Im ersten Befehl wird eine here-Zeichenfolge in doppelten Anführungszeichen erstellt, die ein Schlüssel-Wert-Paar enthält, und in der Variablen "$p" gespeichert. 

Im zweiten Befehl wird die Variable "$p" mithilfe des Pipelineoperators (|) an das Cmdlet "Get-Member" gesendet. Das Ergebnis zeigt, dass $p eine Zeichenfolge (System.String) ist.

Im dritten Befehl wird das Cmdlet "ConvertFrom-StringData" verwendet, um die here-Zeichenfolge in $p in eine Hashtabelle zu konvertieren. Das Ergebnis wird in der Variablen "$hash" gespeichert.

Im letzten Befehl wird die Variable "$hash" mithilfe des Pipelineoperators (|) an das Cmdlet "Get-Member" gesendet. Das Ergebnis zeigt, dass der Inhalt der Variablen "$hash" eine Hashtabelle (System.Collections.Hashtable) ist.






Beispiel 3

C:\PS>convertfrom-stringdata -stringdata @'
   Name = Disks.ps1
   # Category is optional.
   Category = Storage
   Cost = Free
'@

Name                           Value
----                           -----
Cost                           Free
Category                       Storage
Name                           Disks.ps1

Beschreibung
-----------
Mit diesem Befehl wird eine here-Zeichenfolge in einfachen Anführungszeichen, die mehrere Schlüssel-Wert-Paare enthält, in eine Hashtabelle konvertiert. 

In diesem Befehl ist der Wert des StringData-Parameters eine here-Zeichenfolge, statt einer Variablen, die eine here-Zeichenfolge enthält. Beide Formate sind gültig.

Die here-Zeichenfolge enthält einen Kommentar über eine der Zeichenfolgen. Kommentare in Zeichenfolgen sind zulässig, sofern sich der Kommentar in einer anderen Zeile als ein Schlüssel-Wert-Paar befindet.






Beispiel 4

C:\PS>$a = convertfrom-stringdata -stringdata "Top = Red `n Bottom = Blue"

C:\PS> "Top = " + $a.Top
Top = Red

C:\PS> "Bottom = " + $a.Bottom
Bottom = Blue

Beschreibung
-----------
In diesem Beispiel wird eine reguläre Zeichenfolge (keine here-Zeichenfolge) in doppelten Anführungszeichen in eine Hashtabelle konvertiert und in der Variablen "$a" gespeichert.

Um die Bedingung zu erfüllen dass sich jedes Schlüssel-Wert-Paar in einer eigenen Zeile befinden muss, werden die Paare mithilfe des Windows PowerShell-Zeilenumbruchzeichens (`n) getrennt.

Das Ergebnis ist eine Hashtabelle der Eingabe. Mit den restlichen Befehlen wird die Ausgabe angezeigt.






Beispiel 5

C:\PS>$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.
'@
}

C:\PS> $TextMsgs.Text001
The $Notebook variable contains the name of the user's system notebook.


C:\PS> $TextMsgs.Text002
The $MyNotebook variable contains the name of the user's private notebook.

Beschreibung
-----------
In diesem Beispiel wird der im DATA-Abschnitt eines Skripts verwendete Befehl "ConvertFrom-StringData" veranschaulicht. Mit den Anweisungen unter dem DATA-Abschnitt wird der Text für den Benutzer angezeigt.

Da der Text Variablennamen enthält, muss er in eine Zeichenfolge in einfachen Anführungszeichen eingeschlossen werden, damit die Variablen buchstäblich interpretiert und nicht erweitert werden. Variablen sind im DATA-Abschnitt nicht zulässig.






Beispiel 6

C:\PS>$here = @'
Msg1 = The string parameter is required.
Msg2 = Credentials are required for this command.
Msg3 = The specified variable does not exist.
'@

C:\PS> $hash = $here | convertfrom-stringdata 

C:\PS> $hash

Name     Value
----     -----
Msg3     The specified variable does not exist.
Msg2     Credentials are required for this command.
Msg1     The string parameter is required.

Beschreibung
-----------
In diesem Beispiel wird gezeigt, dass eine Zeichenfolge mithilfe des Pipelineoperators (|) an ConvertFrom-StringData gesendet werden kann. 

Im ersten Befehl wird eine here-Zeichenfolge in der Variablen "$here" gespeichert. Im zweiten Befehl wird die Variable "$here" mithilfe des Pipelineoperators (|) an ConvertFrom-StringData gesendet. Das Ergebnis wird in der Variablen "$hash" gespeichert.

Im letzten Befehl wird der Inhalt der Variablen "$hash" angezeigt.






Siehe auch




Inhaltsverzeichnis