Zoeken…


Invoering

In alle cmd.exe en DOS versies zijn sommige tekens gereserveerd voor specifiek gebruik (bijvoorbeeld opdrachtomleiding). In dit onderwerp wordt besproken hoe u de speciale tekens zonder problemen kunt gebruiken.

Ontsnappen met behulp van de cursor (^)

De meeste speciale tekens kunnen worden ontsnapt met behulp van het kruisje ( ^ ). Bekijk het volgende voorbeeld.

echo > Hi
echo ^> Hi 

Het eerste commando zou niet uitgevoerd > Hi omdat > is een speciaal karakter, welke middelen omleiden naar een bestand gekopieerd. In dit geval heet het bestand "Hallo"

In het tweede commando zou > Hi probleemloos worden uitgevoerd, omdat de caret ( ^ ) de > vertelt om te stoppen met functioneren als "uitvoer naar bestand" commando, nu > is gewoon een normaal karakter.


Hier is een lijst met speciale tekens waaraan kan worden ontsnapt (genomen en bewerkt vanaf de pagina van Rob van der Woude)

Karakter Ontsnapt resultaat Opmerkingen
^ ^^
& ^ &
< ^ <
> ^>
| ^ |
\ ^ \
! ^^! Alleen vereist wanneer Vertraagde uitbreiding is ingeschakeld

Ontsnappen aan de caret

Carets kunnen worden gestapeld om andere carets te ontsnappen, bekijk het volgende voorbeeld.

Invoer uitgang
^ & &
^ ^ ^ & ^ &
^ ^ ^ ^ ^ & ^^ &

Opmerking: de vetgedrukte carets zijn ontsnapt.


Beveiligingsprobleem

Een beetje off topic hier, maar dit is erg belangrijk! Een ongewenste ontsnapping aan het einde van het bestand kan een geheugenlek veroorzaken!

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

Deze opdracht zou al het geheugen lekken, waardoor het systeem volledig onbruikbaar wordt ! Kijk hier voor meer informatie.

FIND en FINDSTR speciale tekens

In find en findstr zijn er enkele speciale tekens die enige voorzichtigheid vereisen.


VIND

Er is maar één teken dat moet ontsnappen: " quote. Om eraan te ontsnappen, voeg je er gewoon een ander quote aan toe. Dus " wordt "" . Best simpel.


FINDSTR

Findstr heeft veel personages om te ontsnappen, dus wees voorzichtig. Met \ kunnen we aan speciale tekens ontsnappen. Hier is een lijst met speciale tekens om te ontsnappen

Karakter Ontsnapt resultaat
\ \\
[ \ [
] \]
" \"
. \.
* \ *
? \?

FOR / F speciale tekens

VOOR / F

In een FOR /F statement moeten sommige karakters ontsnappen, hier een lijst (overgenomen en bewerkt van de pagina van Rob van der Woude)

Karakter Ontsnapt resultaat Opmerkingen
' ^' Alleen nodig tussen de haakjes van FOR /F , tenzij usebackq is opgegeven.
` ^ ` Alleen nodig tussen de haakjes van FOR /F , wanneer usebackq is opgegeven
, ^,
; ^;
= ^ = ┣ Moet ontsnapt zijn tussen de haakjes van FOR /F , zelfs als deze tussen dubbele aanhalingstekens staat
( ^ (
) ^)

Extra speciale tekens

Hier is een lijst met andere speciale tekens, waarvoor een of meer ontsnappingen nodig zijn, maar die hierboven niet worden vermeld.

Karakter Ontsnapt resultaat Opmerkingen
% %%
[LF] ^ [LF] Deze truc wordt gemeten door Mark Stang in de alt.msdos.batch .

Ontsnappen door de pijpleiding

Als er een uitdrukking met een pijp is, begint de cmd twee draden aan beide zijden van de pijp en wordt de uitdrukking twee keer ontleed (voor elke zijde van de pijp), dus de carets moeten worden verdubbeld.

Aan de linkerkant:

echo ^^^&|more

Aan de rechterkant:

break|echo ^^^&


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow