У пакетному файлі я називаю інший пакетний файл, щоб встановити декілька змінних оточення.
Змінні дані встановлені правильно, і я можу їх викликати.
Однак у цьому випадку мені потрібно порівняти дві з цих змінних середовища і визначити, чи є вони однаковими для того, щоб умовно запустити решту партії (або перейти до кінця / виходу).
Тим не менш, я не можу отримати умовні для виконання тесту (порівняння) двох змінних оточення.
Вони визначаються як% today2% (сьогоднішня дата встановлена як MMDDYY) і% firstmonday%, яка є розрахованою перший понеділок місяця і встановлена як MMYYDD). При запуску сьогодні (14 жовтня 2015 року), вони повертають 101415 і 110215.
Потім я намагаюся перевірити їх таким чином:
if %today2%==%firstmonday% goto GO else END
Проте тест, здається, повністю ігнорується - тест завжди переходить до GO незалежно.
Якщо я echo %today%
і %firstmonday%
вони, звичайно, різні, але тест оцінюється як правдивий і виконується.
Якщо я не пояснювати себе чітко, будь ласка, дайте мені знати, і я постараюся зробити це краще. Я скоріше новачок, коли мова йде про це, але обернулася з ним на деякий час і не може здатися, щоб з'ясувати логічний недолік.
..else goto END
і є :END
після вашого :GO
маркер, оскільки він зараз переходить до наступного рядка.
if /?
він дає приклади правильного синтаксису, коли єelse
пункт: насправді він дає ваш приклад як примірник команди, яка НЕ працює, разом з двома робочими версіями. Тому щоelse
Синтаксис є неелегантним, мені легше відмінити тест, як вif not %today2%==%firstmonday% goto END
, з наступним рядком якGO
код.