about_Data_Sections
Letzte Aktualisierung: Mai 2014
Betrifft: Windows PowerShell 2.0, Windows PowerShell 3.0, Windows PowerShell 4.0, Windows PowerShell 5.0
Einführung hier einfügen.
about_Data_Sections
Erläutert die Data-Abschnitte, die Zeichenfolgen und andere schreibgeschützte Daten von Skriptlogik isolieren.
Skripts, die für Windows PowerShell® entworfen werden, können einen oder mehrere Data-Abschnitte enthalten, die nur Daten enthalten. Sie können einen oder mehrere Data-Abschnitte in jedes Skript, jede Funktion oder erweiterte Funktion einschließen. Der Inhalt des Data-Abschnitts ist auf eine bestimmte Teilmenge der Windows PowerShell-Skriptsprache beschränkt.
Die Abtrennung der Daten von Code-Logik erleichtert das Erkennen und Verwalten von Logik und Daten. Damit können Sie separate Zeichenfolgen-Ressourcendateien für Text, z. B. Fehlermeldungen und Hilfetexten verwenden. So wird auch die Code-Logik isoliert, was Sicherheits- und Überprüfungstests erleichtert.
In Windows PowerShell wird der Data-Abschnitt verwendet, um die Skript-Internationalisierung zu unterstützen. Sie können Data-Abschnitte verwenden, um Zeichenfolgen einfacher zu isolieren, zu lokalisieren und zu verarbeiten, die in viele Sprachen der Benutzeroberfläche (UI) übersetzt werden.
Der Data-Abschnitt ist ein Windows PowerShell 2.0-Feature. Skripts mit Data-Abschnitten funktionieren in Windows PowerShell 1.0 nicht ohne Überarbeitung.
Die Syntax für einen Data-Abschnitt lautet wie folgt:
DATA [-supportedCommand <cmdlet-name>] {
<Permitted content>
}
Das Data-Schlüsselwort ist erforderlich. Es muss keine Groß-/Kleinschreibung beachtet werden.
Der zulässige Inhalt ist auf die folgenden Elemente beschränkt:
- All Windows PowerShell operators, except -match
- If, Else, and ElseIf statements
- The following automatic variables: $PsCulture, $PsUICulture, $True,
$False, and $Null
- Comments
- Pipelines
- Statements separated by semicolons (;)
- Literals, such as the following:
a
1
1,2,3
"Windows PowerShell 2.0"
@( "red", "green", "blue" )
@{ a = 0x1; b = "great"; c ="script" }
[XML] @'
<p> Hello, World </p>
'@
- Cmdlets that are permitted in a Data section. By default, only the
ConvertFrom-StringData cmdlet is permitted.
- Cmdlets that you permit in a Data section by using the
SupportedCommand parameter.
Wenn Sie das ConvertFrom-StringData-Cmdlet in einem Data-Abschnitt verwenden, können Sie die Schlüssel-Wert-Paare in mit einfachen Anführungszeichen oder doppelten Anführungszeichen versehene Zeichenfolgen oder in mit einfachen Anführungszeichen oder doppelten Anführungszeichen versehene here-Zeichenfolgen einschließen. Allerdings müssen Zeichenfolgen, die Variablen und Teilausdrücke enthalten, in mit einfachen Anführungszeichen versehene Zeichenfolgen oder in mit einfachen Anführungszeichen versehene here-Zeichenfolgen eingeschlossen werden, damit die Variablen nicht erweitert und die Teilausdrücke nicht ausgeführt werden.
Mit dem SupportedCommand-Parameter können Sie angeben, dass ein Cmdlet oder eine Funktion nur Daten generiert. Es wurde entwickelt, damit Benutzer Cmdlets und Funktionen in einem Data-Abschnitt einschließen können, den sie geschrieben oder getestet haben.
Der Wert von SupportedCommand ist eine durch Kommas getrennte Liste von einem oder mehreren Cmdlet- oder Funktionsnamen.
Der folgende Data-Abschnitt enthält z. B. ein vom Benutzer erstelltes Cmdlet, Format-XML, welches die Daten in einer XML-Datei formatiert:
DATA -supportedCommand Format-XML
{
Format-XML -strings string1, string2, string3
}
Um den Inhalt eines Data-Abschnitts zu verwenden, weisen Sie ihn einer Variablen zu und verwenden die Variablen-Notation, um auf den Inhalt zuzugreifen.
Der folgende Data-Abschnitt enthält beispielsweise einen ConvertFrom-StringData-Befehl, der die here-Zeichenfolge in eine Hash-Tabelle umwandelt. Die Hash-Tabelle wird der $TextMsgs-Variablen zugewiesen.
Die $TextMsgs-Variable ist nicht Teil des Data-Abschnitts.
$TextMsgs = DATA {
ConvertFrom-StringData -stringdata @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}
Um auf die Schlüssel und Werte in der Hash-Tabelle in $TextMsgs zuzugreifen, verwenden Sie die folgenden Befehle.
$TextMsgs.Text001
$TextMsgs.Text002
Einfache Datenzeichenfolgen.
DATA {
"Thank you for using my Windows PowerShell Organize.pst script."
"It is provided free of charge to the community."
"I appreciate your comments and feedback."
}
Zeichenfolgen, die zulässige Variablen enthalten.
DATA {
if ($null) {
"To get help for this cmdlet, type get-help new-dictionary."
}
}
Eine mit einfachen Anführungszeichen versehene here-Zeichenfolge, die das ConvertFrom-StringData-Cmdlet verwendet:
DATA {
ConvertFrom-StringData -stringdata @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}
Eine mit doppelten Anführungszeichen versehene here-Zeichenfolge, die das ConvertFrom-StringData-Cmdlet verwendet:
DATA {
ConvertFrom-StringData -stringdata @"
Msg1 = To start, press any key.
Msg2 = To exit, type "quit".
"@
}
Ein Data-Abschnitt, der ein vom Benutzer geschriebenes Cmdlet einschließt, das Daten generiert:
DATA -supportedCommand Format-XML {
Format-XML -strings string1, string2, string3
}
about_Automatic_Variables
about_Comparison_Operators
about_Hash_Tables
about_If
about_Operators
about_Quoting_Rules
about_Script_Internationalization
ConvertFrom-StringData
Import-LocalizedData