В Интернете много ссылок, в которых утверждается, что одно из различий между графическим интерфейсом и консольным приложением заключается в том, что запуск приложения GUI из пакетного файла не блокирует его выполнение, а запуск консольного приложения блокирует его.
Несколько из многих ссылок, в частности, из SO/SE:
- Как я могу получить приложение MFC для блокировки из командной строки?
- Как ждать завершения процесса для выполнения другого процесса в пакетном файле
- Как вы ожидаете завершения exe в пакетном файле?
- Запустите программу в пакетном режиме script и дождитесь ее завершения до продолжения
Кроме того, я сам помню, что это правда.
Но похоже, что это не так.
Я тестировал это в простом командном файле, например:
echo Pre
notepad
echo Post
Post
не печатается, пока я не закрою блокнот. Почему, когда блокнот - это графическое приложение?
Я тестировал это на Windows 8, 7 и XP, чтобы исключить возможность изменения поведения в последних версиях Windows. Я попытался отключить расширения команд как один из возможных виновников.