Ricerca…


introduzione

In tutte le versioni cmd.exe e DOS , alcuni caratteri sono riservati per un uso specifico (ad esempio il reindirizzamento dei comandi). Questo argomento parlerà di come utilizzare i caratteri speciali senza problemi.

Fuga usando il segno di omissione (^)

La maggior parte dei caratteri speciali può essere sfuggita utilizzando il segno di omissione ( ^ ). Dai un'occhiata al seguente esempio.

echo > Hi
echo ^> Hi 

Questo primo comando non verrà emesso > Hi perché > è un carattere speciale, che significa reindirizzare l'output a un file. In questo caso, il file è denominato "Ciao"

Comunque nel secondo comando, > Hi sarebbe emesso senza alcun problema perché il segno di omissione ( ^ ) dice al comando > di smettere di funzionare come comando "redireziona l'output su file", ora > è solo un carattere normale.


Ecco una lista di caratteri speciali che possono essere sfuggiti (presi e modificati dalla pagina di Rob van der Woude)

Personaggio Risultato sfuggito Osservazioni
^ ^^
& ^ &
< ^ <
> ^>
| ^ |
\ ^ \
! ^^! Richiesto solo quando DelayedExpansion è attivo

Sfuggire al cursore

I carnet possono essere impilati fino alla fuga di altri caret, prendere in considerazione il seguente esempio.

Ingresso Produzione
^ & &
^ ^ ^ & ^ &
^ ^ ^ ^ ^ & ^^ &

Nota: i caratteri in grassetto sono sfuggiti.


Problema di sicurezza

Un po 'fuori tema qui, ma questo è molto importante! Una fuga del cursore indesiderata alla fine del file potrebbe causare una perdita di memoria!

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

Questo comando potrebbe perdere tutta la memoria, rendendo il sistema completamente inutilizzabile ! Vedi qui per maggiori informazioni.

TROVA e FINDSTR Caratteri speciali

In find e findstr , ci sono alcuni caratteri speciali che richiedono una certa cautela.


TROVA

C'è solo un personaggio che ha bisogno di scappare - " preventivo " Per evitarlo, aggiungi semplicemente un'altra citazione accanto ad esso, quindi " diventa "" . Abbastanza semplice.


FINDSTR

Findstr viene fornito con un sacco di personaggi da cui fuggire, quindi per favore sii molto cauto. Usando \ , possiamo sfuggire a caratteri speciali. Ecco una lista di personaggi speciali da sfuggire

Personaggio Risultato sfuggito
\ \\
[ \ [
] \]
" \"
. \.
* \ *
? \?

Caratteri speciali FOR / F

FOR / F

In una frase FOR /F , alcuni caratteri devono essere salvati, qui una lista (presa e modificata dalla pagina di Rob van der Woude)

Personaggio Risultato sfuggito Osservazioni
' ^' usebackq solo nelle parentesi FOR /F , a meno che non sia specificato usebackq .
` ^ ` usebackq solo nelle parentesi FOR /F , quando viene specificato usebackq
, ^,
; ^;
= ^ = ┣ Deve essere sfuggito nelle parentesi FOR /F , anche se è doppia citazione
( ^ (
) ^)

Caratteri speciali extra

Ecco una lista di altri caratteri speciali, che richiedono (s) / potrebbe essere necessario fuggire, ma non menzionati sopra.

Personaggio Risultato sfuggito Osservazioni
% %%
[LF] ^ [LF] Questo trucco è interpretato da Mark Stang nel gruppo di notizie alt.msdos.batch .

Fuggire attraverso il gasdotto

Quando c'è un'espressione con una pipe, il cmd avvia due thread su entrambi i lati della pipe e l'espressione viene analizzata due volte (per ciascun lato della pipe) in modo che i segni di omissione debbano essere raddoppiati.

Sul lato sinistro:

echo ^^^&|more

Dal lato giusto:

break|echo ^^^&


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow