Em um arquivo em lote, estou chamando outro arquivo em lote para definir uma série de variáveis de ambiente de data.
As variáveis de dados estão definidas corretamente e posso chamá-las.
No entanto, neste caso, preciso comparar duas dessas variáveis de ambiente e determinar se elas são iguais para iniciar condicionalmente o restante do lote (ou pular para finalizar/sair).
Porém, não consigo obter a condicional para executar o teste (comparação) das duas variáveis de ambiente.
Eles são definidos como %today2% (data de hoje definida como MMDDAA) e %firstmonday%, que é a primeira segunda-feira calculada do mês e definida como MMAAAA). Quando executados hoje (14 de outubro de 2015), eles retornam 101415 e 110215.
Estou então tentando testá-los da seguinte maneira:
if %today2%==%firstmonday% goto GO else END
No entanto, o teste parece ser completamente ignorado – o teste sempre prossegue para GO independentemente.
Se eu echo %today%
e %firstmonday%
eles somos diferentes, é claro, mas de alguma forma o teste é avaliado como verdadeiro e executado.
Se não estiver me explicando claramente, por favor me avise e tentarei fazer um trabalho melhor. Sou bastante novato quando se trata disso, mas já mexi nisso por um tempo e não consigo descobrir a falha lógica.
Responder1
Criei dois arquivos em lote: b1.cmd
e b2.cmd
os seguintes. Primeiro, b2.cmd
que define suas variáveis conforme descrito:
set today2=101415
set firstmonday=110215
Então, b1.cmd
o que funciona conforme desejado:
@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