Freigeben über


about_Special_Characters

Kurze Beschreibung

Beschreibt die speziellen Zeichenfolgensequenzen, die steuern, wie PowerShell die nächsten Zeichen in der Sequenz interpretiert.

Lange Beschreibung

PowerShell unterstützt eine Reihe von speziellen Zeichenfolgen, die verwendet werden, um Zeichen darzustellen, die nicht Teil des Standardzeichensatzes sind. Die Sequenzen werden allgemein als Escapesequenzen bezeichnet.

Escapesequenzen beginnen mit dem Backtickzeichen, das als Grabakzent (ASCII 96) bezeichnet wird, und beachten die Groß-/Kleinschreibung. Das Backtick-Zeichen kann auch als Escapezeichen bezeichnet werden.

Escapesequenzen werden nur interpretiert, wenn sie in Zeichenfolgen mit doppeltem Anführungszeichen (") enthalten sind.

PowerShell erkennt diese Escapesequenzen:

Sequenz BESCHREIBUNG
`0 Null
`a Warnung
`b Rücktaste
`e Escape (in PowerShell 6 hinzugefügt)
`f Seitenvorschub
`n Zeilenwechsel
`r Wagenrücklauf
`t Horizontaler Tabulator
`u{x} Unicode-Escapesequenz (in PowerShell 6 hinzugefügt)
`v Vertikaler Tabulator

PowerShell verfügt auch über ein spezielles Token, um zu markieren, wo die Analyse beendet werden soll. Alle Zeichen, die diesem Token folgen, werden als Literalwerte verwendet, die nicht interpretiert werden.

Spezielle Analysetoken:

Sequenz BESCHREIBUNG
-- Behandeln der verbleibenden Werte als Argumente, nicht als Parameter
--% Beenden sie die Analyse der folgenden Elemente.
~ Tilde

NULL ('0)

Das Zeichen NULL (`0) wird als leerer Leerraum in der PowerShell-Ausgabe angezeigt. Mit dieser Funktion können Sie PowerShell verwenden, um Textdateien zu lesen und zu verarbeiten, die NULL-Zeichen verwenden, z. B. Zeichenfolgenbeendigungs- oder Aufzeichnungsbeendigungsindikatoren. Das NULL-Sonderzeichen entspricht nicht der Variablen, die $null einen NULL-Wert speichert.

Warnung ('a)

Das Warnungszeichen (`a) sendet ein Signalton an den Lautsprecher des Computers. Sie können dieses Zeichen verwenden, um einen Benutzer vor einer bevorstehenden Aktion zu warnen. Im folgenden Beispiel werden zwei Signaltonsignale an den Lautsprecher des lokalen Computers gesendet.

for ($i = 0; $i -le 1; $i++){"`a"}

Rücktaste ('b)

Das Rücktastenzeichen (`b) verschiebt den Cursor um ein Zeichen zurück, löscht jedoch keine Zeichen.

Das Beispiel schreibt das Wort Sicherung und verschiebt den Cursor dann zweimal zurück. Schreibt dann an der neuen Position ein Leerzeichen, gefolgt von dem Wort.

"backup`b`b out"
back out

Escape ('e)

Hinweis

Dieses Sonderzeichen wurde in PowerShell 6.0 hinzugefügt.

Das Escapezeichen (`e) wird am häufigsten verwendet, um eine virtuelle Terminalsequenz (ANSI-Escapesequenz) anzugeben, die die Farbe des Texts und andere Textattribute wie Fettdruck und Unterstreichung ändert. Diese Sequenzen können auch zum Positionieren und Scrollen des Cursors verwendet werden. Der PowerShell-Host muss virtuelle Terminalsequenzen unterstützen. Sie können den booleschen Wert von $Host.UI.SupportsVirtualTerminal überprüfen, um festzustellen, ob diese ANSI-Sequenzen unterstützt werden.

Weitere Informationen zu ANSI-Escapesequenzen finden Sie im Wikipedia-Artikel ANSI-Escapesequenz.

Im folgenden Beispiel wird Text mit einer grünen Vordergrundfarbe ausgegeben.

$fgColor = 32 # green
"`e[${fgColor}mGreen text`e[0m"
Green text

Formularfeed ('f)

Das Formularfeedzeichen (`f) ist eine Druckanweisung, mit der die aktuelle Seite ausgeworfen und auf der nächsten Seite weiter gedruckt wird. Das Formularfeedzeichen wirkt sich nur auf gedruckte Dokumente aus. Dies wirkt sich nicht auf die Bildschirmausgabe aus.

Neue Zeile ('n)

Das neue Zeilenzeichen (`n) fügt unmittelbar nach dem Zeichen einen Zeilenumbruch ein.

In diesem Beispiel wird gezeigt, wie Sie das neue Zeilenzeichen verwenden, um Zeilenumbrüche in einem Write-Host Befehl zu erstellen.

"There are two line breaks to create a blank line`n`nbetween the words."
There are two line breaks to create a blank line

between the words.

Wagenrücklauf ('r)

Das Wagenrücklaufzeichen (`r) verschiebt den Ausgabecursor an den Anfang der aktuellen Zeile und setzt das Schreiben fort. Alle Zeichen in der aktuellen Zeile werden überschrieben.

In diesem Beispiel wird der Text vor der Wagenrückgabe überschrieben.

Write-Host "These characters are overwritten.`rI want this text instead "

Beachten Sie, dass der Text, bevor das `r Zeichen nicht gelöscht wird, überschrieben wird.

I want this text instead written.

Horizontale Registerkarte ('t)

Das horizontale Tabstoppzeichen (`t) wird zur nächsten Registerkarte fortgesetzt und schreibt an diesem Punkt weiter. Standardmäßig verfügt die PowerShell-Konsole über einen Tabstopp an jedem achten Leerzeichen.

In diesem Beispiel werden zwei Registerkarten zwischen jeder Spalte eingefügt.

"Column1`t`tColumn2`t`tColumn3"
Column1         Column2         Column3

Unicode-Zeichen ('u{x})

Hinweis

Dieses Sonderzeichen wurde in PowerShell 6.0 hinzugefügt.

Mit der Unicode-Escapesequenz (`u{x}) können Sie jedes Unicode-Zeichen durch die hexadezimale Darstellung des Codepunkts angeben. Dies schließt Unicode-Zeichen über der mehrsprachigen Basic-Ebene (>0xFFFF) ein, die Emojizeichen wie das Daumen nach oben (`u{1F44D}) enthält. Die Unicode-Escapesequenz erfordert mindestens eine Hexadezimalziffer und unterstützt bis zu sechs Hexadezimalstellen. Der maximale Hexadezimalwert für die Sequenz ist 10FFFF.

In diesem Beispiel wird das Nach-oben-nach-unten-Symbol (↕) ausgegeben.

"`u{2195}"

Vertikale Registerkarte ('v)

Das Zeichen vertikale Registerkarte (`v) wechselt zur nächsten vertikalen Registerkarte und schreibt die verbleibende Ausgabe an diesem Punkt. Das Rendering der vertikalen Registerkarte ist geräte- und terminalabhängig.

Write-Host "There is a vertical tab`vbetween the words."

Die folgenden Beispiele zeigen die gerenderte Ausgabe der vertikalen Registerkarte in einigen gängigen Umgebungen.

Die Hostanwendung der Windows-Konsole interpretiert (`v) als Sonderzeichen ohne zusätzlichen Abstand.

There is a vertical tab♂between the words.

Die Windows-Terminal rendert das vertikale Registerkartenzeichen als Wagenrücklauf und Zeilenvorschub. Der Rest der Ausgabe wird am Anfang der nächsten Zeile gedruckt.

There is a vertical tab
between the words.

Auf Druckern oder in unixbasierten Konsolen wechselt das vertikale Registerkartenzeichen zur nächsten Zeile und schreibt die verbleibende Ausgabe an diesem Punkt.

There is a vertical tab
                       between the words.

Zeilenfortsetzung

Das Backtick-Zeichen kann auch am Ende einer Zeile als Signal an den PowerShell-Parser verwendet werden, dass der Befehl in der nächsten Zeile fortgesetzt wird. Weitere Informationen finden Sie unter about_Parsing.

Das Token zum Ende der Parameter (--)

Das Token für das Ende der Parameter (--) gibt an, dass alle folgenden Argumente in ihrer tatsächlichen Form übergeben werden sollen, als würden doppelte Anführungszeichen um sie herum platziert. Beispielsweise können Sie die Zeichenfolge -InputObject ausgeben--, ohne Anführungszeichen zu verwenden oder sie als Parameter interpretieren zu lassen:

Write-Output -- -InputObject
-InputObject

Dies ist eine Konvention, die in der POSIX Shell and Utilities-Spezifikation angegeben ist.

Token mit Der Analyse beenden (--%)

Das Token zum Beenden der Analyse (--%) verhindert, dass PowerShell Zeichenfolgen als PowerShell-Befehle und -Ausdrücke interpretiert. Dadurch können diese Zeichenfolgen zur Interpretation an andere Programme übergeben werden.

Platzieren Sie das Token für die Stoppanalyse nach dem Programmnamen und vor den Programmargumenten, die Fehler verursachen können.

In diesem Beispiel verwendet der Icacls Befehl das Token zum Beenden der Analyse.

icacls X:\VMS --% /grant Dom\HVAdmin:(CI)(OI)F

PowerShell sendet die folgende Zeichenfolge an Icacls.

X:\VMS /grant Dom\HVAdmin:(CI)(OI)F

In diesem zweiten Beispiel übergeben wir die Variable $HOME zweimal an den cmd.exe /c echo Befehl.

cmd.exe /c echo $HOME --% $HOME

Die Ausgabe zeigt, dass der erste instance von $HOME von interpretiert wird, sodass der Wert der Variablen an cmdübergeben wird. Die zweite instance von $HOME kommt nach dem Token zum Beenden der Analyse, sodass es als Literalzeichenfolge übergeben wird.

C:\Users\username  $HOME

Weitere Informationen zum Token zum Beenden der Analyse finden Sie unter about_Parsing.

Tilde (~)

Das Tildenzeichen (~) hat in PowerShell eine besondere Bedeutung. Wenn es mit PowerShell-Befehlen am Anfang eines Pfads verwendet wird, erweitert PowerShell das Tildenzeichen auf das Basisverzeichnis des Benutzers. Wenn Sie das Tildenzeichen an einer anderen Stelle in einem Pfad verwenden, wird es als Literalzeichen behandelt.

Weitere Informationen zum Token zum Beenden der Analyse finden Sie unter about_Parsing.

Weitere Informationen