En un archivo por lotes, estoy llamando a otro archivo por lotes para establecer una serie de variables de entorno de fecha.
Las variables de datos están configuradas correctamente y puedo llamarlas.
Sin embargo, en este caso, necesito comparar dos de estas variables de entorno y determinar si son iguales para poder iniciar condicionalmente el resto del lote (o saltar hasta finalizar/salir).
Sin embargo, parece que no puedo obtener el condicional para ejecutar la prueba (comparación) de las dos variables de entorno.
Estos se definen como %today2% (la fecha de hoy establecida como MMDDAA) y %firstmonday%, que es el primer lunes calculado del mes y establecido como MMAADD). Cuando se ejecutan hoy (14 de octubre de 2015), devuelven 101415 y 110215.
Luego intento probarlos de la siguiente manera:
if %today2%==%firstmonday% goto GO else END
Sin embargo, la prueba parece ignorarse por completo: la prueba siempre continúa con GO independientemente.
Si yo echo %today%
y %firstmonday%
ellos somos, por supuesto, diferentes, pero de alguna manera la prueba se evalúa como verdadera y se ejecuta.
Si no me explico claramente, hágamelo saber e intentaré hacerlo mejor. Soy más bien un novato en lo que respecta a esto, pero he estado jugando con ello por un tiempo y parece que no puedo entender el error lógico.
Respuesta1
He creado dos archivos por lotes: b1.cmd
y b2.cmd
los siguientes. Primero, b2.cmd
que establece sus variables como se describe:
set today2=101415
set firstmonday=110215
Entonces, b1.cmd
que funciona como se desea:
@echo off
call b2.cmd
echo today=%today2%
echo firstmonday=%firstmonday%
if "%today2%"=="%firstmonday%" (
goto go
) else (
goto end
)
:go
echo at go
goto :EOF
:end
echo at end