Как вернуть код ошибки без закрытия окна командной строки?
Я пишу командный файл, который проверяет пару файлов. Если один из файлов недействителен, я хочу, чтобы пакет script остановился и вернул код ошибки > 0. Следующий код, похоже, выполняет эту работу, но вызов "EXIT 2" закрывает окно командной строки, в котором работает script.
:Validate
SETLOCAL
Validator %1
IF %ERRORLEVEL% GEQ 1 EXIT 2
ENDLOCAL
Любая идея о том, как вернуть код ошибки без закрытия командной строки?
Ответы
Ответ 1
Чтобы получить помощь для команд командной строки, используйте их /? вариант. Exit /?
показывает:
Выход из программы CMD.EXE(командный интерпретатор) или текущей партии script.
EXIT [/B] [exitCode]
/B указывает на выход из текущей партии script вместо CMD.EXE. Если выполняется извне пакет script, он выйдет из CMD.EXE
exitCode указывает числовое число. если задано /B, наборы ERRORLEVEL это число. Если вы покинете CMD.EXE, задайте процесс код выхода с этим номером.
Итак, вы хотите
IF %ERRORLEVEL% GEQ 1 EXIT /B 2
Ответ 2
Вы можете использовать команду pause
перед вызовом exit.
Если вам не нравится сообщение:
pause > nul
Ответ 3
Получается та же проблема. Если вы пишете пакет (оболочка Windows script). ' cmd' должен сделать это за вас. это не приведет к выходу из пакета и останется в командной строке.
Решила мою проблему.
например:
cd "\view\Flex Builder 3\gcc-mvn"
set path="c:\view\jdk1.7.0_02\bin";"c:\view\apache-maven-3.0.5\bin";%path%
mvn sonar:sonar
cmd
должен оставаться в строке после выполнения.