Sök…


Introduktion

I alla cmd.exe och DOS versioner är vissa tecken reserverade för specifik användning (t.ex. kommandoomdirigering). Det här ämnet talar om hur man använder specialtecken utan problem.

Escape med caret (^)

De flesta specialtecken kan undkommas med hjälp av caret ( ^ ). Ta en titt på följande exempel.

echo > Hi
echo ^> Hi 

Det första kommandot skulle inte matas ut > Hi eftersom > är ett specialtecken, vilket betyder att omdirigera utdata till en fil. I det här fallet heter filen "Hej"

Men i det andra kommandot, > Hi skulle matas ut utan problem eftersom caret ( ^ ) säger > att sluta fungera som "omdirigera output till fil" -kommando, nu > är bara ett normalt tecken.


Här är en lista med specialtecken som kan undkomma (tas och redigeras från Rob van der Woude's sida)

Karaktär Flyktat resultat Anmärkningar
^ ^^
& ^ &
< ^ <
> ^>
| ^ |
\ ^ \
! ^^! Krävs endast när DelayedExpansion är på

Rymmer från caret

Carets kan staplas upp till andra flyktingar, se följande exempel.

Inmatning Produktion
^ & &
^ ^ ^ & ^ &
^ ^ ^ ^ ^ & ^^ &

Obs: Caretsna i fetstil undviks.


Säkerhetsproblem

Lite av ämnet här, men det är mycket viktigt! En oönskad utsläpp i karet i slutet av filen kan orsaka en minnesläcka!

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

Detta kommando skulle läcka ut allt minne och göra systemet helt oanvändbart ! Se här för mer information.

FINNA och FINDSTR specialtecken

I find och findstr finns det några specialtecken som kräver viss försiktighet.


HITTA

Det finns bara en karaktär som behöver fly - " citat. För att undkomma det, lägg bara till ett annat citat bredvid. Så " blir "" . Ganska enkelt.


FINDSTR

Findstr kommer med många karaktärer att undkomma, så var mycket försiktig. Med \ kan vi undgå specialtecken. Här är en lista med specialtecken att fly

Karaktär Flyktat resultat
\ \\
[ \ [
] \]
" \"
. \.
* \ *
? \?

FOR / F Specialtecken

FOR / F

I ett FOR /F uttalande måste vissa tecken rymma, här en lista (tas och redigeras från Rob van der Woude's sida)

Karaktär Flyktat resultat Anmärkningar
' ^' Behövs endast i FOR /F : s parentes, såvida usebackq anges.
' ^ ' Behövs endast i FOR /F : s parentes när usebackq anges
, ^,
; ^;
= ^ = ┣ Måste rymmas i FOR /F : s parenteser, även om det är dubbelciterat
( ^ (
) ^)

Extra specialtecken

Här är en lista med andra specialtecken som kräver / kan komma undan, men som inte nämns ovan.

Karaktär Flyktat resultat Anmärkningar
% %%
[LF] ^ [LF] Detta trick är uppmärksammat av Mark Stang i alt.msdos.batch .

Flyr genom pipeline

När det finns ett uttryck med ett rör startar cmd två trådar på båda sidor av röret och uttrycket tolkas två gånger (för varje sida av röret) så att carets måste fördubblas.

På vänstra sidan:

echo ^^^&|more

På höger sida:

break|echo ^^^&


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow