THEMA about_Quoting_Rules KURZBESCHREIBUNG Beschreibt Regeln zur Verwendung einzelner und doppelter Anführungszeichen in Windows PowerShell. DETAILBESCHREIBUNG Anführungszeichen werden verwendet, um eine Literalzeichenfolge anzugeben. Zeichenfolgen können in einfache gerade (') oder doppelte gerade Anführungszeichen (") eingeschlossen werden. Anführungszeichen werden außerdem verwendet, um eine here-Zeichenfolge zu erstellen. Eine here-Zeichenfolge ist eine Zeichenfolge in einfachen oder doppelten Anführungszeichen, in der Anführungszeichen buchstäblich interpretiert werden. Eine here-Zeichenfolge kann mehrere Zeilen umfassen. Alle Zeilen in einer here-Zeichenfolge werden als Zeichenfolgen interpretiert, auch wenn sie nicht in Anführungszeichen eingeschlossen sind. In Befehlen an Remotecomputer definieren Anführungszeichen die Teile des Befehls, die auf dem Remotecomputer ausgeführt werden. In einer Remotesitzung legen Anführungszeichen weiterhin fest, ob die Variablen in einem Befehl zuerst auf dem lokalen Computer oder auf dem Remotecomputer interpretiert werden. Zeichenfolgen in einzelnen und doppelten Anführungszeichen Bei Zeichenfolgen zwischen doppelten Anführungszeichen werden Variablennamen nach einem Dollarzeichen ($) durch den Wert der Variablen ersetzt, bevor die Zeichenfolge zur Verarbeitung an den Befehl übergeben wird. Beispiel: $i = 5 "Der Wert von $i ist $i." Dieser Befehl erzeugt folgende Ausgabe: Der Wert von 5 ist 5 In Zeichenfolgen in doppelten Anführungszeichen werden auch Ausdrücke ausgewertet, und das Ergebnis wird in die Zeichenfolge eingefügt. Beispiel: "Der Wert von $(2+3) ist 5." Dieser Befehl erzeugt folgende Ausgabe: Der Wert von 5 ist 5 Zeichenfolgen zwischen einfachen Anführungszeichen werden so an den Befehl übergeben, wie Sie eingegeben wurden. Es findet keine Ersetzung statt. Beispiel: $i = 5 'Der Wert von $i ist $i.' Dieser Befehl erzeugt folgende Ausgabe: Der Wert von $i ist $i. Entsprechend werden Ausdrücke in Zeichenfolgen zwischen einfachen Anführungszeichen nicht ausgewertet. Sie werden als Literale interpretiert. Beispiel: 'Der Wert von $(2+3) ist 5.' Dieser Befehl erzeugt folgende Ausgabe: Der Wert von $(2+3) ist 5. Mit dem Graviszeichen (') (ASCII 96), dem Escapezeichen von Windows PowerShell, können Sie die Ersetzung eines Variablenwerts in einer Zeichenfolge zwischen doppelten Anführungszeichen verhindern. Im folgenden Beispiel wird durch das Graviszeichen vor der ersten $i-Variablen verhindert, dass der Name der Variablen von Windows PowerShell durch ihren Wert ersetzt wird. Beispiel: $i = 5 "Der Wert von `$i ist $i." Dieser Befehl erzeugt folgende Ausgabe: Der Wert von $i ist 5. Doppelte Anführungszeichen können in einer Zeichenfolge angezeigt werden, indem die gesamte Zeichenfolge in einfache Anführungszeichen eingeschlossen wird. Beispiel: 'Wie sagt man so schön: "Man lernt nie aus."' Dieser Befehl erzeugt folgende Ausgabe: Wie sagt man so schön: "Man lernt nie aus." Sie können auch eine Zeichenfolge in einfachen Anführungszeichen in eine Zeichenfolge in doppelten Anführungszeichen einschließen. Beispiel: "Wie sagt man so schön: 'Man lernt nie aus.'" Dieser Befehl erzeugt folgende Ausgabe: Wie sagt man so schön: 'Man lernt nie aus.' Sie können auch einen Satz in doppelten Anführungszeichen in doppelte Anführungszeichen einschließen. Beispiel: "Wie sagt man so schön: ""Man lernt nie aus.""" Dieser Befehl erzeugt folgende Ausgabe: Wie sagt man so schön: "Man lernt nie aus." Um ein einfaches Anführungszeichen in eine Zeichenfolge in einfachen Anführungszeichen einzuschließen, verwenden Sie ein zweites, darauf folgendes einfaches Anführungszeichen. Beispiel: 'Boole''sch' Dieser Befehl erzeugt folgende Ausgabe: Boole'sch Um Windows PowerShell zu zwingen, ein doppeltes Anführungszeichen buchstäblich zu interpretieren, verwenden Sie ein Graviszeichen. Dadurch wird verhindert, dass Windows PowerShell das Anführungszeichen als Zeichenfolgentrennzeichen interpretiert. Beispiel: "Beginnen Sie eine Zeichenfolge mit einem Anführungszeichen (`")." Da der Inhalt von Zeichenfolgen in einfachen Anführungszeichen buchstäblich interpretiert wird, können Sie in einer Zeichenfolge in einfachen Anführungszeichen kein Graviszeichen verwenden, um die buchstäbliche Interpretation von Zeichen zu erzwingen. Mit dem folgenden Befehl wird beispielsweise ein Fehler generiert, da Windows PowerShell das Escapezeichen nicht erkennt. Stattdessen wird das zweite Anführungszeichen als Ende der Zeichenfolge interpretiert. PS C:\> 'Beginnen Sie eine Zeichenfolge mit einem Anführungszeichen (`').' Unerwartetes Token ')' in Ausdruck oder Anweisung. Bei Zeile:1 Zeichen:27 + 'Beginnen Sie eine Zeichenfolge <<<< mit einem Anführungszeichen (`').' Here-Zeichenfolgen in einzelnen und doppelten Anführungszeichen Die Verwendung von Anführungszeichen für here-Zeichenfolgen ist etwas anders geregelt. Eine here-Zeichenfolge ist eine Zeichenfolge in einfachen oder doppelten Anführungszeichen, in der Anführungszeichen buchstäblich interpretiert werden. Eine here-Zeichenfolge kann mehrere Zeilen umfassen. Alle Zeilen in einer here-Zeichenfolge werden als Zeichenfolgen interpretiert, auch wenn sie nicht in Anführungszeichen eingeschlossen sind. Analog zu regulären Zeichenfolgen werden Variablen bei here-Zeichenfolgen in doppelten Anführungszeichen durch die entsprechenden Werte ersetzt. Bei here-Zeichenfolgen in einfachen Anführungszeichen werden Variablen nicht durch die entsprechenden Werte ersetzt. Auch wenn here-Zeichenfolgen für beliebigen Text verwendet werden können, sind sie für die folgenden Arten von Text besonders nützlich: - Text mit literalen Anführungszeichen; - mehrzeiliger Text, beispielsweise Text in einem HTML- oder XML-Dokument; - Hilfetext für ein Skript oder eine Funktion Here-Zeichenfolgen können eines der nachstehenden Formate aufweisen. <Eingabetaste> steht dabei für das ausgeblendete Zeilenvorschubzeichen oder das ausgeblendete Neue-Zeile-Zeichen, das hinzugefügt wird, wenn Sie die EINGABETASTE drücken. Format 1: @"<Eingabetaste> <Zeichenfolge> [Zeichenfolge] ...<Eingabetaste> "@ Format 2: @'<Eingabetaste> <Zeichenfolge> [Zeichenfolge] ...<Eingabetaste> '@ Unabhängig vom verwendeten Format muss das schließende Anführungszeichen das erste Zeichen in der Zeile darstellen. Eine here-Zeichenfolge enthält den gesamten Text zwischen den beiden ausgeblendeten Zeichen. In der here-Zeichenfolge werden alle Anführungszeichen buchstäblich interpretiert. Beispiel: @" Geben Sie "get-help" ein, um Hilfe zu erhalten. "@ Dieser Befehl erzeugt folgende Ausgabe: Geben Sie "get-help" ein, um Hilfe zu erhalten. Here-Zeichenfolgen können die Verwendung von Zeichenfolgen in Befehlen vereinfachen. Beispiel: @" Beginnen Sie eine Zeichenfolge mit einem Anführungszeichen ('). "@ Dieser Befehl erzeugt folgende Ausgabe: Beginnen Sie eine Zeichenfolge mit einem Anführungszeichen ('). Bei here-Zeichenfolgen in einfachen Anführungszeichen werden Variablen buchstäblich interpretiert und exakt reproduziert. Beispiel: @' Die Variable "$profile" enthält den Pfad des Windows PowerShell-Profils. '@ Dieser Befehl erzeugt folgende Ausgabe: Die Variable "$profile" enthält den Pfad des Windows PowerShell-Profils. Bei here-Zeichenfolgen in doppelten Anführungszeichen werden Variablen durch die entsprechenden Werte ersetzt. Beispiel: @" Auch wenn Sie kein Profil erstellt haben, lautet der Pfad der Profildatei wie folgt: $profile. "@ Dieser Befehl erzeugt folgende Ausgabe: Auch wenn Sie kein Profil erstellt haben, lautet der Pfad der Profildatei wie folgt: C:\Users\User01\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1. Here-Zeichenfolgen werden in aller Regel verwendet, um mehrere Zeilen einer Variablen zuzuweisen. Beispielsweise weist die folgende here-Zeichenfolge der Variablen "$page" eine Seite mit XML zu. $page = [XML] @" <command:command xmlns:maml="https://schemas.microsoft.com/maml/2004/10" xmlns:command="https://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="https://schemas.microsoft.com/maml/dev/2004/10"> <command:details> <command:name> Format-Table </command:name> <maml:description> <maml:para>Formatiert die Ausgabe als Tabelle.</maml:para> </maml:description> <command:verb>format</command:verb> <command:noun>table</command:noun> <dev:version></dev:version> </command:details> ... </command:command> "@ Here-Zeichenfolgen sind auch ein gut geeignetes Format für Eingaben für das Cmdlet "ConvertFrom-StringData", mit dem here-Zeichenfolgen in Hashtabellen umgewandelt werden. Weitere Informationen finden Sie unter "ConvertFrom-StringData". SIEHE AUCH about_Escape_Characters ConvertFrom-StringData