Как приостановить пакетный скрипт по команде - PullRequest
0 голосов
/ 21 октября 2019

У меня есть пакетный скрипт ниже:

@echo off

cd C:\Program Files (x86)\Project
CALL init_env.bat

cd C:\Users\Documents\Project\Release

START app.exe -ver 133

echo application has been stopped

Это запускает app.exe. На терминале также написано application has been stopped. Можно ли как-нибудь приостановить выполнение сценария после выполнения строки START app.exe -ver 133 и запустить echo application has been stopped только тогда, когда приложение было закрыто или по какой-то причине зависало.

Спасибо

1 Ответ

0 голосов
/ 21 октября 2019

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

Также рекомендуется всегда заключать строку файла / папки в "даже на самом деле не нужно. Таким образом, cd /D "C:\Program Files (x86)\Project" и call "init_env.bat" следует использовать или, что еще лучше, call "C:\Program Files (x86)\Project\init_env.bat", если это работает также из-за того, что пакетный файл init_env.bat написан так, чтобы работать независимо от того, какой каталог является текущим при выполнении. И последние cd /D "C:\Users\Documents\Project\Release" и "app.exe" -ver 133 должны быть записаны в пакетном файле.

Запустить в командной строке окно cd /? для получения справки по команде CD изначение параметра /D.
start /? выводит справку для команды START в окне cmd.

@echo off
call "C:\Program Files (x86)\Project\init_env.bat"
cd /D "C:\Users\Documents\Project\Release"
"app.exe" -ver 133
echo application has been stopped

См. также предопределенные переменные среды Windows .

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