Suche…


Einführung

In allen cmd.exe und DOS Versionen sind einige Zeichen für bestimmte Zwecke reserviert (z. B. Befehlsumleitung). In diesem Thema wird beschrieben, wie Sie die Sonderzeichen ohne Probleme verwenden können.

Flucht mit Caret (^)

Die meisten Sonderzeichen können mit dem Einfügemarke ( ^ ) maskiert werden. Schauen Sie sich das folgende Beispiel an.

echo > Hi
echo ^> Hi 

Dieser erste Befehl würde nicht > Hi ausgeben, da > ein Sonderzeichen ist, was bedeutet, dass die Ausgabe in eine Datei umgeleitet wird. In diesem Fall heißt die Datei "Hi".

Doch im zweiten Befehl, > Hi würde ohne Frage ausgegeben werden , da die Caretzeichen ( ^ ) die sagen > zu , die als „umleiten Ausgabe in Datei“ Stopp - Befehls, jetzt > sind nur ein normaler Charakter.


Hier ist eine Liste von Sonderzeichen, die geschützt werden können (von Rob van der Woudes Seite übernommen und bearbeitet).

Charakter Ergebnis entkommen Bemerkungen
^ ^^
& ^ &
< ^ <
> ^>
| ^ |
\ ^ \
! ^^! Nur erforderlich, wenn DelayedExpansion aktiviert ist

Dem Caret entkommen

Carets können auf die Flucht anderer Carets gestapelt werden. Beachten Sie das folgende Beispiel.

Eingang Ausgabe
^ & &
^ ^ ^ & ^ &
^ ^ ^ ^ ^ & ^^ &

Hinweis: Die fettgedruckten Carets werden nicht verwendet.


Sicherheitsproblem

Ein bisschen abseits hier, aber das ist sehr wichtig! Eine ungewollte Caret-Flucht am Ende der Datei kann zu einem Speicherverlust führen!

any-invalid-command-you-like-here ^

Dieser Befehl würde den gesamten Speicher verlieren und das System vollständig unbrauchbar machen ! Sehen Sie hier für weitere Informationen.

Sonderzeichen FIND und FINDSTR

In find und findstr gibt es einige Sonderzeichen, die etwas Vorsicht erfordern.


FINDEN

Es gibt nur ein Zeichen, für das ein Escapezeichen erforderlich ist: " Anführungszeichen. Um es zu umgehen, fügen Sie einfach ein weiteres Anführungszeichen hinzu. " Wird also zu "" . Ziemlich einfach.


FINDSTR

Findstr viele Charaktere, die zu entkommen sind, seien Sie also bitte vorsichtig. Mit \ können Sonderzeichen ausgeblendet werden. Hier ist eine Liste von Sonderzeichen, die es zu umgehen gilt

Charakter Ergebnis entkommen
\ \\
[ \ [
] \]
" \ "
. \.
* \ *
? \?

FOR / F Sonderzeichen

FOR / F

In einer FOR /F Anweisung müssen einige Zeichen maskiert werden, hier eine Liste (von Rob van der Woudes Seite übernommen und bearbeitet)

Charakter Ergebnis entkommen Bemerkungen
' ^ ' usebackq nur in FOR /F -Klammern benötigt, sofern nicht usebackq angegeben ist.
` ^ ` usebackq nur in FOR /F -Klammern benötigt, wenn usebackq angegeben ist
. ^,
; ^;
= ^ = ┣ Muss in FOR /F -Klammern mit Escapezeichen versehen werden, auch wenn er in doppelten Anführungszeichen steht
( ^ (
) ^)

Sonderzeichen

Hier finden Sie eine Liste anderer Sonderzeichen, für die eine Flucht erforderlich ist / ist, die oben jedoch nicht erwähnt wurde.

Charakter Ergebnis entkommen Bemerkungen
% %%
[LF] ^ [LF] Dieser Trick wird von Mark Stang in der alt.msdos.batch .

Flucht durch die Pipeline

Wenn es einen Ausdruck mit einer Pipe gibt, startet cmd zwei Threads auf beiden Seiten der Pipe, und der Ausdruck wird zweimal analysiert (für jede Seite der Pipe), sodass die Carets verdoppelt werden müssen.

Auf der linken Seite:

echo ^^^&|more

Auf der rechten Seite:

break|echo ^^^&


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow