Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SET aritmtico
El comando SET tambin nos permite definir variables de entorno a partir de operaciones
aritmticas simples con nmeros enteros, ya que lleva incorporada una calculadora bsica:
SET /A expresin
El modificador /A especifica que la cadena a la derecha del signo de igual es una expresin
aritmtica que es evaluada. El evaluador de expresiones es bastante simple y es compatible
con las siguientes operaciones, en orden de precedencia decreciente:
()
- agrupar
*/%
- operadores aritmticos
+- operadores aritmticos
<< >>
- mays lgica
&
- AND (de bits)
^
- XOR (de bits)
|
- OR (de bits)
= *= /= %= += -= - asignacin
&= ^= |= <<= >>=
,
- separador de expresin
Si se utiliza cualquiera de los operadores lgicos o de mdulo, ser necesario escribir la
cadena entre comillas. Cualquier cadena que no sea numrica en la expresin, sern tratadas
como nombres de la variable de entorno cuyos valores son convertidos a nmeros antes de ser
utilizados.
Si un nombre de la variable de entorno es especificada pero no definida en el entorno actual,
entonces se utiliza el valor cero. Esto permite hacer operaciones aritmticas con los valores
de la variable de entorno evitando el escribir todos estos signos % para obtener sus valores.
Ejemplos:
convertir a pesetas (ej.1200)
SET /A euros=%1, ptas=euros*166386/1000
199663
multiplicamos esa cantidad por 2 al cubo (i.e., aadimos 3 ceros "binarios" a su derecha)
set /a ptas="ptas<<3"
<-- las comillas son necesarias por la
1597304
ambigedad del operador <
Lanzamiento de un dado ...
set /a %random% % 6 + 1
4
Podemos utilizar nmeros hexadecimales
J:\>SET /A ff=0xF0CA + 0xFEA
65716
Algunos ejemplos:
set a=123456789
a) set /a a=%a:123=999% (Sustituimos la subcadena numrica 123 por 999)
999456789
b) set /a a=(%a:123=456%),(%a:456=789%),(%a:789=8910%)
(Sustitumos 123 por 456, 456 por 789 y 789 por 8910)
4564568910