Как написать команду вызова в командном файле условно? - PullRequest
5 голосов
/ 05 августа 2011

У меня есть две строки команды вызова в командном файле, например:

call execute.cmd
call launch.cmd

Мне нужно вызывать launch.cmd тогда и только тогда, когда вызов execute.cmd завершается успешно. Так есть ли способ, с помощью которого я могу поставить здесь какое-то условие?

execute.cmd не возвращает здесь никакого значения.

Ответы [ 2 ]

5 голосов
/ 05 августа 2011

Если execute.cmd возвращает целое число, чем вы можете использовать IF command, чтобы проверить его возвращаемое значение и если оно соответствует желаемому, вы можете позвонить launch.cmd

Предположим, что execute.cmd возвращает 0, если оно успешно, или целое число> = 1 в противном случае. Пакет будет выглядеть так:

* * 1010

обратите внимание, что команда rem используется для комментариев.

НТН,
JP

3 голосов
/ 05 августа 2011

Я считаю, что это дубликат Как заставить пакетный файл завершить работу при обнаружении ошибки? .

Ваше решение будет следующим:

call execute.cmd
if %errorlevel% neq 0 exit /b %errorlevel%
call launch.cmd
if %errorlevel% neq 0 exit /b %errorlevel%

К сожалению, похоже, что пакетные файлы Windows не имеют эквивалента UNIX bash set -e и set -o pipefail.Если вы хотите отказаться от очень ограниченного языка пакетных файлов, попробуйте Windows PowerShell.

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