В пакетном файле я вызываю другой пакетный файл, чтобы задать ряд переменных среды даты.
Переменные данных установлены правильно, и я могу их вызвать.
Однако в данном случае мне необходимо сравнить две из этих переменных среды и определить, являются ли они одинаковыми, чтобы условно запустить оставшуюся часть пакета (или перейти к концу/выйти).
Однако мне не удаётся заставить условие выполнить проверку (сравнение) двух переменных окружения.
Они определяются как %today2% (сегодняшняя дата установлена как ММДДГГ) и %firstmonday%, который является вычисленным первым понедельником месяца и установлен как ММГГДД). При запуске сегодня (14 октября 2015 г.) они возвращают 101415 и 110215.
Затем я попытаюсь проверить их следующим образом:
if %today2%==%firstmonday% goto GO else END
Однако тест, похоже, полностью игнорируется — тест всегда переходит к GO независимо от этого.
Конечно, если I echo %today%
и %firstmonday%
Ot различаются, но каким-то образом тест оценивается как истинный и выполняется.
Если я неясно изъясняюсь, пожалуйста, дайте мне знать, и я постараюсь сделать это лучше. Я в этом деле новичок, но некоторое время возился с этим и, похоже, не могу понять логическую ошибку.
решение1
Я создал два пакетных файла: b1.cmd
и b2.cmd
которые следуют. Первый, b2.cmd
который устанавливает ваши переменные, как описано:
set today2=101415
set firstmonday=110215
Тогда b1.cmd
что выполняет желаемое:
@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