1

В пакетном файле я вызываю другой пакетный файл, чтобы установить число переменных среды даты.

Переменные данных установлены правильно, и я могу их вызвать.

Однако в этом случае мне нужно сравнить две из этих переменных среды и определить, являются ли они одинаковыми, чтобы условно запустить оставшуюся часть пакета (или перейти к концу / выходу).

Тем не менее, я не могу получить условия для выполнения теста (сравнения) двух переменных среды.

Они определены как% today2% (сегодняшняя дата установлена как MMDDYY) и% firstmonday%, который является вычисленным первым понедельником месяца и установлен как MMYYDD). При запуске сегодня (14 октября 2015 г.) они возвращают 101415 и 110215.

Затем я пытаюсь проверить их следующим образом:

if %today2%==%firstmonday% goto GO else END

Тем не менее, тест, кажется, полностью игнорируется - тест всегда переходит к GO независимо от.

Если я повторю echo %today% и %firstmonday% они, конечно, разные, но каким-то образом тест оценивается как true и выполняется.

Если я не объясняю себя четко, пожалуйста, дайте мне знать, и я постараюсь сделать это лучше. Я скорее новичок, когда дело доходит до этого, но какое-то время разбирался с этим и, похоже, не могу понять логический недостаток.

1 ответ1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .