Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Kurzbeschreibung
Erläutert Datenabschnitte, die Textzeichenfolgen und andere schreibgeschützte Daten aus Skriptlogik isolieren.
Lange Beschreibung
Skripts, die für PowerShell entwickelt wurden, können über einen oder mehrere Datenabschnitte verfügen, die nur Daten enthalten. Sie können einen oder mehrere Datenabschnitte in jedes Skript, jede Funktion oder jede erweiterte Funktion einschließen. Der Inhalt des Abschnitts "Daten" ist auf eine bestimmte Teilmenge der PowerShell-Skriptsprache beschränkt.
Das Trennen von Daten aus der Codelogik erleichtert das Identifizieren und Verwalten von Logik und Daten. Sie können separate Zeichenfolgenressourcendateien für Text verwenden, z. B. Fehlermeldungen und Hilfezeichenfolgen. Sie isoliert auch die Codelogik, die Sicherheits- und Validierungstests erleichtert.
In PowerShell wird der Abschnitt "Daten" verwendet, um die Skriptinternationalisierung zu unterstützen. Sie können Data-Abschnitte verwenden, um das Isolieren, Suchen und Verarbeiten von Zeichenfolgen zu vereinfachen, die in viele Sprachen der Benutzeroberfläche übersetzt werden.
Der Abschnitt "Daten" ist ein Feature von PowerShell 2.0. Skripts mit Datenabschnitten werden in PowerShell 1.0 nicht ohne Überarbeitung ausgeführt.
Syntax
Die Syntax für einen Data-Abschnitt lautet wie folgt:
DATA [<variable-name>] [-supportedCommand <cmdlet-name>] {
<Permitted content>
}
Das Data-Schlüsselwort ist erforderlich. Es wird nicht zwischen Groß- und Kleinschreibung unterschieden. Der zulässige Inhalt ist auf die folgenden Elemente beschränkt:
Alle PowerShell-Operatoren außer
-matchIf-Else- undElseIf-AnweisungenDie folgenden automatischen Variablen:
$PsCulture,$PsUICulture,$True,$Falseund$NullKommentare
Rohrleitungen
Durch Semikolons getrennte Anweisungen (
;)Literale, z. B. folgendes:
a 1 1,2,3 "PowerShell 2.0" @( "red", "green", "blue" ) @{ a = 0x1; b = "great"; c ="script" } [XML] @' <p> Hello, World </p> '@Cmdlets, die in einem Datenabschnitt zulässig sind. Standardmäßig ist nur das Cmdlet
ConvertFrom-StringDatazulässig.Cmdlets, die Sie in einem Data-Abschnitt mithilfe des
-SupportedCommandParameters zulassen.
Wenn Sie das ConvertFrom-StringData Cmdlet in einem Data-Abschnitt verwenden, können Sie die Schlüssel-Wert-Paare in Zeichenfolgen in einfachen oder doppelten Anführungszeichen oder in here -Zeichenfolgen in einfachen oder doppelten Anführungszeichen einschließen. Zeichenfolgen, die Variablen und Teilausdrücke enthalten, müssen jedoch in Zeichenfolgen in einfachen Anführungszeichen oder in hier in einfachen Anführungszeichen eingeschlossen werden, damit die Variablen nicht erweitert werden und die Teilausdrücke nicht ausführbar sind.
-Unterstützter Befehl
Mit dem -SupportedCommand Parameter können Sie angeben, dass ein Cmdlet oder eine Funktion nur Daten generiert. Es wurde entwickelt, um Benutzern das Einschließen von Cmdlets und Funktionen in einen Datenabschnitt zu ermöglichen, den sie geschrieben oder getestet haben.
Der Wert von -SupportedCommand ist eine durch Trennzeichen getrennte Liste eines oder mehrerer Cmdlet- oder Funktionsnamen.
Der folgende Datenabschnitt enthält z. B. das vom Benutzer geschriebene Cmdlet Format-Xml, das Daten in einer XML-Datei formatiert:
DATA -supportedCommand Format-Xml
{
Format-Xml -Strings string1, string2, string3
}
Verwenden eines Datenabschnitts
Um den Inhalt eines Datenabschnitts zu verwenden, weisen Sie ihn einer Variablen zu und verwenden Sie die Variablennotation, um auf den Inhalt zuzugreifen.
Der folgende Datenabschnitt enthält z. B. einen ConvertFrom-StringData Befehl, der die Zeichenfolge here-in eine Hash-Tabelle konvertiert. Die Hashtabelle wird der $TextMsgs Variablen zugewiesen.
Die $TextMsgs Variable ist nicht Teil des Datenabschnitts.
$TextMsgs = DATA {
ConvertFrom-StringData -StringData @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}
Verwenden Sie die folgenden Befehle, um auf die Schlüssel und Werte in der Hashtabelle in $TextMsgszuzugreifen.
$TextMsgs.Text001
$TextMsgs.Text002
Alternativ können Sie den Variablennamen in die Definition des Datenabschnitts einfügen. Beispiel:
DATA TextMsgs {
ConvertFrom-StringData -StringData @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}
$TextMsgs
Das Ergebnis entspricht dem vorherigen Beispiel.
Name Value
---- -----
Text001 Windows 7
Text002 Windows Server 2008 R2
Beispiele
Einfache Datenzeichenfolgen.
DATA {
"Thank you for using my 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 hier zitierte einzel zitierte Zeichenfolge, die das Cmdlet ConvertFrom-StringData verwendet:
DATA {
ConvertFrom-StringData -stringdata @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}
Eine hier zitierte doppelte Zeichenfolge, die das Cmdlet ConvertFrom-StringData verwendet:
DATA {
ConvertFrom-StringData -stringdata @"
Msg1 = To start, press any key.
Msg2 = To exit, type "quit".
"@
}
Ein Datenabschnitt, der ein vom Benutzer geschriebenes Cmdlet enthält, das Daten generiert:
DATA -supportedCommand Format-XML {
Format-Xml -strings string1, string2, string3
}