THEMA about_Data_Sections KURZBESCHREIBUNG Erläutert Datenabschnitte, in denen Textzeichenfolgen und andere schreibgeschützte Daten von Skriptlogik isoliert sind. DETAILBESCHREIBUNG Für Windows PowerShell entworfene Skripts können einen oder mehrere Datenabschnitte umfassen, die nur Daten enthalten. In jedem Skript, jeder Funktion und jeder erweiterten Funktion können Sie einen oder mehrere Datenabschnitte einschließen. Der Inhalt des Datenabschnitts ist auf eine angegebene Teilmenge der Windows PowerShell-Skriptsprache beschränkt. Die Trennung der Daten von Code erleichtert das Erkennen und Verwalten der Logik und der Daten. Damit können Sie separate Zeichenfolgenressourcendateien für Text verwenden, z. B. Fehlermeldungen und Hilfezeichenfolgen. Zudem wird auch die Codelogik isoliert, wodurch Sicherheits- und Gültigkeitstests erleichtert werden. In Windows PowerShell wird der Datenabschnitt verwendet, um die Skriptinternationalisierung zu unterstützen. Mit Datenabschnitten können Sie das Isolieren, Suchen und Verarbeiten von Zeichenfolgen erleichtern, die in zahlreiche Benutzeroberflächensprachen übersetzt werden sollen. Der Datenabschnitt bildet ein Feature von Windows PowerShell 2.0. Skripts mit Datenabschnitten werden in Windows PowerShell 1.0 nicht ohne Überarbeitung ausgeführt. Syntax Für Datenabschnitte wird folgende Syntax verwendet: DATA [-supportedCommand <Cmdlet-Name>] { <Zulässiger Inhalt> } Das Data-Schlüsselwort ist erforderlich. Bei diesem wird die Groß-/Kleinschreibung nicht beachtet. Der zulässige Inhalt ist auf die folgenden Elemente beschränkt: - Alle Windows PowerShell-Operatoren, mit Ausnahme von -match - Anweisungen If, Else und ElseIf - Die folgenden automatischen Variablen: $PsCulture, $PsUICulture, $True, $False und $Null - Kommentare - Pipelines - Durch Semikolons (;) getrennte Anweisungen - Literale, z. B. folgende: a 1 1,2,3 "Windows PowerShell 2.0" @("rot", "grün", "blau") @{ a = 0x1; b = "gross"; c ="Skript" } [XML] @' <p> Hello, World </p> '@ - Cmdlets, die in Datenabschnitten zulässig sind. Standardmäßig ist nur das Cmdlet "ConvertFrom-StringData" zulässig. - Cmdlets, die Sie mit dem SupportedCommand-Parameter in Datenabschnitten zulassen. Wenn Sie das Cmdlet "ConvertFrom-StringData" in einem Datenabschnitt verwenden, können Sie die Schlüssel-Wert-Paare in Zeichenfolgen mit einfachen Anführungszeichen oder doppelten Anführungszeichen oder in here-Zeichenfolgen mit doppelten Anführungszeichen einschließen. Zeichenfolgen mit Variablen sowie Teilausdrücke müssen jedoch in Zeichenfolgen mit einfachen Anführungszeichen oder here-Zeichenfolgen mit einfachen Anführungszeichen eingeschlossen werden, damit die Variablen nicht erweitert werden und die Teilausdrücke nicht ausgeführt werden können. SupportedCommand Mit dem SupportedCommand-Parameter können Sie angeben, dass von einem Cmdlet oder einer Funktion nur Daten generiert werden. Er wurde entworfen, um Benutzern das Einfügen von Cmdlets und Funktionen in einen Datenabschnitt zu ermöglichen, den sie geschrieben oder getestet haben. Der Wert von SupportedCommand besteht aus einer durch Trennzeichen getrennte Liste mit einem oder mehreren Cmdlet- oder Funktionsnamen. Beispielsweise enthält der folgende Datenabschnitt das von einem Benutzer erstellte Cmdlet "Format-XML", mit dem Daten in einer XML-Datei formatiert werden: DATA -supportedCommand Format-XML { Format-XML -strings Zeichenfolge1, Zeichenfolge2, Zeichenfolge3 } Verwenden eines Datenabschnitts Zum Verwenden des Inhalts eines Datenabschnitts weisen Sie diesen einer Variable zu, und greifen Sie auf den Inhalt in Variablennotation zu. Beispielsweise enthält der folgende Datenabschnitt den Befehl "ConvertFrom-StringData", mit dem die here-Zeichenfolge in eine Hashtabelle konvertiert wird. Die Hashtabelle wird der Variablen "$TextMsgs" zugewiesen. Die Variable "$TextMsgs" bildet keinen Teil des Datenabschnitts. $TextMsgs = DATA { ConvertFrom-StringData -stringdata @' Text001 = Windows 7 Text002 = Windows Server 2008 R2 '@ } Zum Zugreifen auf die Schlüssel und Werte in einer Hashtabelle in $TextMsgs verwenden Sie die folgenden Befehle: $TextMsgs.Text001 $TextMsgs.Text002 BEISPIELE Einfache Datenzeichenfolgen. DATA { "Vielen Dank, dass Sie mein Windows PowerShell-Skript 'Organize.pst' verwenden." "Es steht der Community kostenfrei zur Verfügung." "Ich freue mich auf Ihre Kommentare und Ihr Feedback." } Zeichenfolgen mit zulässigen Variablen. DATA { if ($null) { "Wenn Sie Hilfe für dieses Cmdlet benötigen, geben Sie 'get-help new-dictionary' ein." } } Eine here-Zeichenfolge in einfachen Anführungszeichen, für die das Cmdlet "ConvertFrom-StringData" verwendet wird: DATA { ConvertFrom-StringData -stringdata @' Text001 = Windows 7 Text002 = Windows Server 2008 R2 '@ } Eine here-Zeichenfolge in doppelten Anführungszeichen, für die das Cmdlet "ConvertFrom-StringData" verwendet wird: DATA { ConvertFrom-StringData -stringdata @" Msg1 = Drücken Sie zum Starten eine beliebige Taste. Msg2 = Geben Sie zum Beenden "quit" ein. "@ } Ein Datenabschnitt, der ein von einem Benutzer erstelltes Cmdlet enthält, mit dem Daten generiert werden: DATA -supportedCommand Format-XML { Format-XML -strings Zeichenfolge1, Zeichenfolge2, Zeichenfolge3 } SIEHE AUCH about_Automatic_Variables about_Comparison_Operators about_Hash_Tables about_If about_Operators about_Quoting_Rules about_Script_Internationalization ConvertFrom-StringData Import-LocalizedData