Szukaj…


Wprowadzenie

We wszystkich wersjach cmd.exe i DOS niektóre znaki są zarezerwowane do określonego zastosowania (np. Przekierowanie poleceń). W tym temacie omówimy, jak używać znaków specjalnych bez problemów.

Ucieczka za pomocą karetki (^)

Większość znaków specjalnych można uciec za pomocą karetki ( ^ ). Spójrz na następujący przykład.

echo > Hi
echo ^> Hi 

To pierwsze polecenie nie wypisuje > Hi ponieważ > jest znakiem specjalnym, co oznacza przekierowanie wyjścia do pliku. W tym przypadku plik ma nazwę „Cześć”

Jednak w drugim poleceniu > Hi zostanie wypisane bez żadnego problemu, ponieważ daszek ( ^ ) każe > przestać działać jako polecenie „przekieruj wyjście do pliku”, teraz > jest po prostu normalnym znakiem.


Oto lista znaków specjalnych, które można uciec (wzięte i edytowane ze strony Roba van der Woude'a)

Postać Wynik ucieczki Uwagi
^ ^^
I ^ I
< ^ <
> ^>
| ^ |
\ ^ \
! ^^! Wymagane tylko, gdy włączone jest opóźnienie rozszerzenia

Ucieczka z karetki

Karetki można układać w stosy, aby uciec przed innymi karetami, rozważ następujący przykład.

Wejście Wynik
^ I I
^ ^ ^ I ^ I
^ ^ ^ ^ ^ & ^^ i

Uwaga: karety w pogrubionej formie są usuwane.


Problem bezpieczeństwa

Nieco tutaj, ale to bardzo ważne! Niechciana funkcja daszka na końcu pliku może spowodować wyciek pamięci!

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

To polecenie spowodowałoby wyciek całej pamięci, czyniąc system całkowicie bezużytecznym ! Zobacz tutaj, aby uzyskać więcej informacji.

ZNAJDŹ i FINDSTR Znaki specjalne

W find i findstr znajduje się kilka znaków specjalnych, które wymagają ostrożności.


ODNALEŹĆ

Jest tylko jedna postać, która wymaga ucieczki - " cytat. Aby uciec, po prostu dodaj kolejny cytat obok niej. Tak więc " staje się "" . Dość proste.


FINDSTR

Findstr ma wiele postaci do ucieczki, więc bądź bardzo ostrożny. Używając \ , możemy uciec od znaków specjalnych. Oto lista znaków specjalnych do ucieczki

Postać Wynik ucieczki
\ \\
[ \ [
] \]
\ ”
. \.
* \ *
? \?

Znaki specjalne FOR / F

FOR / F

W instrukcji FOR /F niektóre znaki wymagają ucieczki, tutaj lista (pobrana i edytowana ze strony Roba van der Woude'a)

Postać Wynik ucieczki Uwagi
^ ' Potrzebne tylko w nawiasach FOR /F , chyba że usebackq .
` ^ ` Potrzebne tylko w nawiasach FOR /F , gdy usebackq
, ^,
; ^;
= ^ = ┣ Należy wstawić znaki ucieczki w nawiasach FOR /F , nawet jeśli jest to cudzysłów
( ^ (
) ^)

Dodatkowe znaki specjalne

Oto lista innych znaków specjalnych, które wymagają / mogą potrzebować ucieczki, ale nie zostały wymienione powyżej.

Postać Wynik ucieczki Uwagi
% %%
[LF] ^ [LF] Trik ten jest omawiany przez Marka Stanga w alt.msdos.batch dyskusyjnej alt.msdos.batch .

Ucieczka przez rurociąg

Gdy istnieje wyrażenie z potokiem, cmd rozpoczyna dwa wątki po obu stronach potoku, a wyrażenie jest analizowane dwukrotnie (dla każdej strony potoku), więc należy podwoić liczbę znaków.

Po lewej stronie:

echo ^^^&|more

Po prawej stronie:

break|echo ^^^&


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow