Зависит от того, как работает .exe. Боюсь, у меня нет всех технических деталей или терминологии, но некоторые файлы .exe возвращают контроль над сеансом сразу после их запуска, в то время как другие не возвращают управление до тех пор, пока программа не завершится.
Второй случай прост, поскольку команды в конце файла не будут выполняться до тех пор, пока первый не будет завершен, поэтому я предполагаю, что вы сталкиваетесь со случаем № 1.
Простой обходной путь / хак, если выполнение занимает (приблизительно) одинаковое количество времени при каждом запуске, - это использовать команду ping с задержкой.
PING 127.0.0.1 -n 1 -w 120000 >NUL
Это заставит команду ping запускаться один раз с задержкой 120000 мс (2 мин).
Есть также хорошая статья о более сложном (но более надежном методе) на fpschultze.de с гораздо более подробным объяснением. Короче говоря, вы запрашиваете список задач в поисках исполняемого файла, который вы ожидаете. Как только его нет, вы продолжаете работу с командным файлом. Он также использует метод ping, но другим способом.