- 4.8 Otros operadores
- @
Este operador lo vemos siempre en la primera línea de un script bat.
Al usarlo, el operador indica a la CMD que séa menos detallada y muestre solamente el output del comando.
Si no ha quedado claro vamos a ver un ejemplo:
Código [Seleccionar]
Echo OFF
Pause
Como podeis ver en la imagen, la CMD muestra información sobre la intención de ejecutar el comando Echo,
Por eso, además de ocultar el echo en la primera línea de nuestro script, usaremos el operador AT ( @ ) simplemente para que nos oculte esa información.
Otro ejemplo:
Código [Seleccionar]
echo comando 1
echo comando 2
@echo comando 3
echo comando 4
Pause
El operador @ se puede usar con cualquier comando, pero una vez desactivado el "echo" en la primera línea de nuestro script, es una tontería usar este operador a menos que volvamos a activar el echo (Echo ON).
- " "
Las comillas dobles (o Quotes) sirven para definir un string y un argumento, y para que el intérprete pueda diferenciar entre una cadena o una variable.
Un ejemplo:
Código [Seleccionar]
@Echo off
Set Variable=Valor
Echo %VARIABLE%
Echo "%%VARIABLE%%"
Pause >NUL
Como norma general TODAS las cadenas que lleven espacios en el nombre deben encerrarse usando las comillas dobles.
NOTA: Cualquier caracter que esté dentro de las comillas será automáticamente escapado.
NOTA: Como norma general debe existir una cantidad par del operador ", si la cantidad en nuestro script es impar seguramente dará error el código, aunque hay excepciones en algunos casos.
TIP: Si tenemos un comando con una cantidad impar del operador " y estamos usando un editor de código, seguramente este nos resaltará un error de sintaxis en la línea, pero si estamos completamente seguros de que no hemos cometido un error y que la cantidad de comillas debe ser impar entonces resulta molesto que el editor nos resalte el supuesto error. Esto se puede evitar concatenando un comando de comentario seguido de una comilla para redondear la cantidad a pares, así:
Código [Seleccionar]
@Echo off
Set Variable=Valor" " " & REM "
Pause >NUL
- ::
Este operador en realidad es el operador : usado para definir una etiqueta, ¿Recuerdas?
Al repetir el caracter dle operador dos veces se puede usar como alternativa al comando REM
Código [Seleccionar]
@Echo OFF
REM Soy una línea de ocmentario
:: Yo soy otra línea de comentario
Pause >NUL
Al no ser realmente un operador de comentario, puede dar errores en ciertas circunstancias (Dentro de bloques de agrupaciones como FOR) así que es recomendable usarlo fuera de los bloques.
- %
Este operador sirve para identificar y usar las variables standard, las variables de FOR, y las variables especiales (Variables de argumento).
Código [Seleccionar]
%0
%%A
%VARIABLE%
NOTA: Como norma general, directamente en la consola el caracter % solo se usa una vez (Incluso al escribir un FOR), pero en un script hay que duplicar el número de veces que se repite este caracter para poder identificarlo %%, y el número de veces que hay que repetir el caracter aumenta según la recursividad del código.
- !
Este operador se usa para identificar y usar las variables expandidas.
Código [Seleccionar]
!VARIABLE!
Más adelante explicaré como usarlas.
Los siguientes operadores son consideranos NO conflictivos ya que estos operadores solo son interpretados en ciertos comandos.
- *
El asterisco, también llamado "comodín" o "wildcard", es un operador de argumento, al usarlo busca cualquier combinación de caracteres.
Ejemplo:
Código [Seleccionar]
@Echo OFF
Dir /B /S "*.txt"
Pause >NUL
El script buscará cualquier archivo que empiece por cualquier combinación de caracteres y acabe en ".txt"
- ?
Este es otro operador de argumento, al usarlo buscará cualquier caracter de 1 dígito.
Ejemplo:
Código [Seleccionar]
@Echo OFF
Dir /B /S "?.txt"
Pause >NUL
El script buscará cualquier archivo que tenga SOLAMENTE un dígito en el nombre y acabe en ".txt", en resumen, buscará: a.txt, z.txt, A.txt, Z.txt, 0.txt, 9.txt, -.txt, etc...
- .
Este operador representa el directorio actual, y se puede usar con comandos y aplicaciones CLI que acepten rutas como argumentos
Ejemplo:
Código [Seleccionar]
@Echo OFF
Dir .\
REM Equivale a "DIR %CD%"
Pause >NUL
- ..
Este operador representa el directorio anterior del actual, y se puede usar con comandos y aplicaciones CLI que acepten rutas como argumentos
Ejemplo:
Código [Seleccionar]
@Echo OFF
Dir %WINDIR%\..\
REM Equivale a "DIR C:\"
Pause >NUL
- \
Este operador representa el directorio raíz del disco duro, y se puede usar con comandos y aplicaciones CLI que acepten rutas como argumentos
Ejemplo:
Código [Seleccionar]
@Echo OFF
Dir \
REM Equivale a "DIR C:\"
Pause >NUL