Buscar..


Introducción

En todos los cmd.exe y DOS versiones de DOS , algunos caracteres están reservados para un uso específico (por ejemplo, redirección de comandos). Este tema tratará sobre cómo utilizar los caracteres especiales sin problemas.

Escapar con caret (^)

La mayoría de los caracteres especiales se pueden escapar utilizando el símbolo de intercalación ( ^ ). Echa un vistazo al siguiente ejemplo.

echo > Hi
echo ^> Hi 

Este primer comando no generaría > Hi porque > es un carácter especial, lo que significa redirigir la salida a un archivo. En este caso, el archivo se llama "Hola".

Sin embargo, en el segundo comando, > Hi se emitirá sin ningún problema porque caret ( ^ ) le dice al > que deje de funcionar como el comando "redirigir la salida al archivo", ahora > es solo un carácter normal.


Aquí hay una lista de caracteres especiales que se pueden escapar (tomar y editar desde la página de Rob van der Woude)

Personaje Resultado Escapado Observaciones
^ ^^
Y ^ &
< ^ <
> ^>
| ^ |
\ ^ \
! ^^! Solo es necesario cuando DelayedExpansion está activado

Escapando del caret

Los carets se pueden apilar hasta el escape de otros carets, considere el siguiente ejemplo.

Entrada Salida
^ & Y
^ ^ ^ & ^ &
^ ^ ^ ^ ^ & ^^ &

Nota: Los caretes en forma de negrita se escapan.


Problema de seguridad

Un poco fuera de tema aquí, pero esto es muy importante! ¡Un escape de careta no deseado al final del archivo podría causar una pérdida de memoria!

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

¡Este comando perdería toda la memoria, haciendo que el sistema sea completamente inutilizable ! Vea aquí para más información.

Personajes especiales FIND y FINDSTR

En find y findstr , hay algunos caracteres especiales que requieren cierta precaución.


ENCONTRAR

Solo hay un personaje que necesita escapar: " cita. Para escapar, simplemente agregue otra cita junto a ella. Así que " convierte en "" . Bastante simple.


FINDSTR

Findstr viene con un montón de personajes para escapar, así que ten mucho cuidado. Usando \ , podemos escapar de caracteres especiales. Aquí hay una lista de personajes especiales para escapar

Personaje Resultado Escapado
\ \\
El \ [
] \]
" \ "
. \.
* \ *
? \?

Personajes especiales de FOR / F

PARA / F

En una declaración FOR /F , algunos personajes deben escapar, aquí una lista (tomada y editada de la página de Rob van der Woude)

Personaje Resultado Escapado Observaciones
' ^ Solo es necesario en los corchetes de FOR /F , a menos que se especifique usebackq .
` ^ Solo es necesario en los paréntesis de FOR /F , cuando se especifica usebackq
, ^,
; ^;
= ^ = ┣ Debe escaparse entre paréntesis de FOR /F , incluso si está entre comillas dobles
( ^ (
) ^)

Caracteres extra especiales

Aquí hay una lista de otros caracteres especiales, que requieren (s) / pueden necesitar escapar, pero no se mencionan anteriormente.

Personaje Resultado Escapado Observaciones
% %%
[LF] ^ [LF] Mark Stang menciona este truco en el grupo de noticias alt.msdos.batch .

Escapar a través de la tubería

Cuando hay una expresión con una tubería, el cmd comienza con dos hilos en ambos lados de la tubería y la expresión se analiza dos veces (para cada lado de la tubería), por lo que es necesario doblar el caret.

En el lado izquierdo:

echo ^^^&|more

En el lado derecho:

break|echo ^^^&


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow