about_Special_Characters

Kurze Beschreibung

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

Lange Beschreibung

PowerShell unterstützt eine Reihe von Sonderzeichenabfolgen, die verwendet werden, um Zeichen darzustellen, die nicht Teil des Standardzeichensatzes sind. Die Sequenzen werden häufig als Escapesequenzen bezeichnet.

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

Escapesequenzen werden nur interpretiert, wenn sie in doppelt zitierten (") Zeichenfolgen 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 sie die Werte neu Standard als Argumente und keine Parameter
--% Beenden Der Analyse von Elementen, die folgt

Null ('0)

Das Nullzeichen (`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. Zeichenfolgenende- oder Datensatzbeendigungsindikatoren. Das Sonderzeichen null entspricht nicht der $null Variablen, die einen NULL-Wert speichert.

Warnung ('a)

Das Benachrichtigungszeichen (`a) sendet ein Signal signal 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.

Im Beispiel wird das Wort "Backup " geschrieben und der Cursor dann zweimal zurück verschoben. Anschließend schreibt an der neuen Position ein Leerzeichen gefolgt von dem Wort.

"backup`b`b out"
back out

Escapezeichen ('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 von Text und andere Textattribute wie Fett- und Unterstreichung ändert. Diese Sequenzen können auch zum Positionieren und Scrollen von Cursorn verwendet werden. Der PowerShell-Host muss virtuelle Terminalsequenzen unterstützen. Sie können den booleschen Wert überprüfen, um $Host.UI.SupportsVirtualTerminal 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, die die aktuelle Seite auswirft und den Druck auf der nächsten Seite fortsetzt. 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 mit dem neuen Zeilenzeichen Zeilenumbrüche in einem Write-Host Befehl 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 den Schreibvorgang fort. Alle Zeichen in der aktuellen Zeile werden überschrieben.

In diesem Beispiel wird der Text vor dem Wagenrücklauf ü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 (nicht)

Das zeichen horizontale Tabstopp (`t) wechselt zum nächsten Tabstopp und setzt das Schreiben an diesem Punkt fort. 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. Dazu gehören Unicode-Zeichen oberhalb der mehrsprachigen Basisebene (>0xFFFF), die Emoji-Zeichen wie die Daumen nach oben (`u{1F44D}) enthält. Die Unicode-Escapesequenz erfordert mindestens eine Hexadezimalziffer und unterstützt bis zu sechs Hexadezimalziffern. Der maximale Hexadezimalwert für die Sequenz lautet 10FFFF.

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

"`u{2195}"

Vertikale Registerkarte ('v)

Das vertikale Tabstoppzeichen (`v) wechselt zum nächsten vertikalen Tabstopp und schreibt die ausgabe neu Standard an diesem Punkt. Das Rendern 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 Windows Console-Hostanwendung interpretiert (`v) als Sonderzeichen ohne zusätzlichen Abstand.

There is a vertical tab♂between the words.

Die Windows-Terminal rendert das vertikale Tabstoppzeichen 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 Tabstoppzeichen zur nächsten Zeile und schreibt an diesem Punkt die Erneute ausgabe Standard.

There is a vertical tab
                       between the words.

Zeilenfortsetzung

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

Das End-of-Parameters-Token (--)

Das End-of-Parameters-Token (--) gibt an, dass alle darauf folgenden Argumente in ihrer tatsächlichen Form übergeben werden müssen, als ob doppelte Anführungszeichen um sie herum platziert wurden. Sie -- können beispielsweise die Zeichenfolge -InputObject ohne Anführungszeichen ausgeben oder als Parameter interpretiert haben:

Write-Output -- -InputObject
-InputObject

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

Stop-Parsing-Token (--%)

Das Stoppanalysetoken (--%) 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 Stoppanalysetoken nach dem Programmnamen und vor Programmargumenten, die Fehler verursachen können.

In diesem Beispiel verwendet der Icacls Befehl das Stop-Parsing-Token.

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 die erste Instanz von $HOME PowerShell interpretiert wird, sodass der Wert der Variablen übergeben cmdwird. Die zweite Instanz von $HOME kommt nach dem Stop-Parsing-Token, sodass sie als Literalzeichenfolge übergeben wird.

C:\Users\username  $HOME

Weitere Informationen zum Stop-Parsing-Token finden Sie unter about_Parsing.

Weitere Informationen