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.

THEMA

about_Data_Sections

KURZE BESCHREIBUNG

Erläutert die Data-Abschnitte, die Zeichenfolgen und andere schreibgeschützte Daten von Skriptlogik isolieren.

LANGE BESCHREIBUNG

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.

SYNTAX

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.

SUPPORTEDCOMMAND

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
          }
       

VERWENDEN EINES DATA-ABSCHNITTS

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

BEISPIELE

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
        }

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