Как заставить пакетный файл Windows приостановить работу исполняемого файла? - PullRequest
7 голосов
/ 08 декабря 2008

Я пишу командный файл, в котором я вызываю EXE для выполнения. Теперь операторы после вызова EXE не должны выполняться, пока EXE не завершит свое выполнение. Как я могу сделать это в командном файле (в Windows)?

Ответы [ 6 ]

14 голосов
/ 08 декабря 2008
START /WAIT First.exe
START /WAIT Second.exe
7 голосов
/ 08 декабря 2008

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

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

Простой обходной путь / хак, если выполнение занимает (приблизительно) одинаковое количество времени при каждом запуске, - это использовать команду ping с задержкой.

PING 127.0.0.1 -n 1 -w 120000 >NUL

Это заставит команду ping запускаться один раз с задержкой 120000 мс (2 мин).

Есть также хорошая статья о более сложном (но более надежном методе) на fpschultze.de с гораздо более подробным объяснением. Короче говоря, вы запрашиваете список задач в поисках исполняемого файла, который вы ожидаете. Как только его нет, вы продолжаете работу с командным файлом. Он также использует метод ping, но другим способом.

6 голосов
/ 08 декабря 2008

Операторы в пакетном файле выполняются последовательно. Так что если ваш командный файл выглядит так:

first.exe
next.exe

Далее выполняется, если первый завершен.

4 голосов
/ 08 декабря 2008

Вы можете использовать команду «start» с параметром / wait использовать старт /? в командной строке для деталей.

3 голосов
/ 01 декабря 2010

Вот очень простой процесс. Просто оставьте следующую строку, чтобы подождать 10 секунд, а затем продолжите другие команды ...

TIMEOUT /T 10

Это все, что тебе нужно сделать. Я надеюсь, вам понравится моя техника.

0 голосов
/ 08 декабря 2008

Вы можете использовать

PAUSE

В пакетном скриптинге, но я не понимаю вашего вопроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...