Я хочу сделать командный файл, который запускает 3 исполняемых файла соответственно: A.exe B.exe C.exe
PS: A.exe должен закончить свою работу, затем пакетный файл перейти на B.exe и, наконец, C.exe
Я хочу сделать командный файл, который запускает 3 исполняемых файла соответственно: A.exe B.exe C.exe
PS: A.exe должен закончить свою работу, затем пакетный файл перейти на B.exe и, наконец, C.exe
Пакетный файл из трех строк подойдет. Например, пакетный файл с именем mybatch.bat
...
START /wait notepad.exe
START /wait sol.exe
START /wait thirdExecutable.exe
Параметр /wait
также можно заменить на /w
, и он дает команду пакетному сценарию дождаться завершения исполняемого файла, прежде чем перейти к следующему этапу. Таким образом, вы можете не использовать этот параметр в третьей строке. Это приведет только к тому, что окно cmd
останется открытым до тех пор, пока не завершится третий исполняемый файл.
РЕДАКТИРОВАТЬ ДЛЯ АДРЕСА. Вы также можете убедиться, что вы заменили исполняемый файл точным путем к исполняемым файлам - например, если A.exe был расположен в C:\MyFolder\
, вы изменили бы первую строку на START /wait C:\MyFolder\A.exe
. Это не требуется, если исполняемые файлы находятся в любой папке, указанной в переменной среды %PATH%
или находятся в той же папке, что и пакетный файл. Я не думаю, что это ваша проблема.
Интересно, были ли эти три окна cmd
открыла партия, действительно исполняемыми файлами, которые вы хотели запустить? Главное окно, которое открывается с командным файлом, будет отображать команды, которые он выдает, а также будет отображаться, если он не сможет выполнить команды, которые ему даны. Если вы не получили всплывающее предупреждение об ошибке, то ваш пакетный файл находит и успешно запускает три указанных вами исполняемых файла.
Как и в приведенной мной ссылке, вы также можете использовать параметр /minimized
- или эквивалентно /m
- в дополнение к /wait
для выполнения файлов, свернутых по умолчанию. Это может сделать вещи, возможно, немного аккуратнее и выглядеть так, как вы ожидали.
Как она стоит, я думаю , что это работает именно так , как задумано. Точно так же, как вы описали проблему, в любом случае.
ВТОРОЕ РЕДАКТИРОВАНИЕ: Учитывая ваш командный файл, я сделал небольшие изменения, необходимые для того, чтобы он делал то, что вы хотите. Я на самом деле не знаю, что вы хотите повторить с самого начала, но он должен отображать достаточно информации.
ECHO "programs are processing...."
ECHO "First Phase"
START /w "C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\vsvars32.bat"
ECHO "Second Phase"
START /w "C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat"
ECHO "Final phase"
START /w "C:\Program Files\OPNET\16.0.A\sys\pc_intel_win32\bin\modeler.exe"
Это работает как задумано?
ЗАКЛЮЧИТЕЛЬНОЕ РЕДАКТИРОВАНИЕ: Вы можете обойти переменную окружения, если вам когда-нибудь понадобится запустить этот пакетный файл где-нибудь, где у вас нет прав для их изменения.
ECHO "programs are processing...."
ECHO "First Phase"
C:
cd "\Program Files\Microsoft Visual Studio 9.0\VC\bin
START /w vsvars32.bat
ECHO "Second Phase"
cd ..
START /w vcvarsall.bat
ECHO "Final phase"
cd "\Program Files\OPNET\16.0.A\sys\pc_intel_win32\bin"
START /w modeler.exe
И это, кажется, обходит проблему с моей стороны. Ужасно, но пакетные файлы никогда не казались по-настоящему красивыми ...