Soy un veterano que es un novato en la programación por lotes de DOS. Tengo lo que creo que es una secuencia de comandos por lotes muy simple, que es no trabajando. Busqué publicaciones similares, y no encontré ninguna que coincida.Comparando 2 números en DOS Lote que no funciona
Estoy ejecutando el script siguiente en XP. Mi objetivo es comprobar el espacio libre en el disco antes de seguir adelante, pero me encontré con un problema comparando 2 números, por lo que el siguiente script contiene solo esa lógica. Tengo números codificados para mostrar el problema, que es ... La comparación (si xgtr y) parece no funcionar, por lo que la lógica de la rama va al lugar equivocado. O eso, o estoy arruinando en otro lugar en la declaración IF. (Algunas de las declaraciones de eco son innecesarias, están para la depuración, pero las dejé por ahora.)
Cualquier aclaración sobre dónde me estoy equivocando sería GRANMENTE apreciada.
Thx ...
@echo off
set Free=217522712576
set Need=20000000000
echo Free=%Free%
echo Need=%Need%
echo on
IF %Free% GTR %Need% (GOTO Sufficient_Space) ELSE GOTO Insufficient_Space
@echo off
:Insufficient_Space
@ECHO INSUFFICIENT SPACE
GOTO DONE
:Sufficient_Space
@ECHO SUFFICIENT SPACE
:DONE
I t Creo que descubrí esto. Creo que los números son DEMASIADO GRANDES. Si hago que ambos números sean 1 dígito más pequeños, pero igual con la misma relación de tamaño, ¡funciona perfectamente! Tendré que modificar mi script para hacer lo mismo. Es decir, reducir los números manteniendo su relación de tamaño igual. Gracias por escuchar :-) (Y, gracias a Alex K. por reformatear mi código! Supongo que si miro con atención en este sitio, veré las instrucciones sobre cómo hacerlo yo mismo, ¿no?) – feenyman99