Обработка nmake ошибок / кодов возврата - PullRequest
2 голосов
/ 25 ноября 2008

У меня есть проект на основе nmake, который в свою очередь вызывает компилятор asp, который может выдать ошибку, которую nmake, похоже, распознает:

NMAKE : fatal error U1077: 'C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_compiler.exe' : return code '0x1'

Однако, когда я вызываю nmake из пакетного файла, переменная среды% ERRORLEVEL% остается равной нулю:

nmake /NOLOGO
echo BUILD RETURNING: %ERRORLEVEL%  

Если я контролирую задачу cmake-c, я получаю ненулевой ERRORLEVEL (он равен 2), поэтому я предполагаю, что я в состоянии ловить ошибки в порядке, но nmake не пузырится ненулевой код выхода из его задачи. Или, по крайней мере, я ошибаюсь. Любая помощь будет оценена.

Ответы [ 2 ]

1 голос
/ 25 августа 2009

Прежде всего, пожалуйста, опубликуйте свой пакетный файл, чтобы мы могли видеть, как вы перехватываете ошибку.
Также прокомментируйте этот пост, чтобы я мог прочитать его снова.
Как первый мерзавец, я бы предположил что-то вроде:

nmakebatch.cmd обычные аргументы nmake, без / NOLOGO

@echo off
rem Args[x]: nmake arguments
echo.>> %~n0.log
echo %date% %time%>> %~n0.log
echo nmake /NOLOGO %*>> %~n0.log
nmake /NOLOGO %*
echo %errorlevel%>> %~n0.log

Это начало для захвата всех ситуаций в журнал приращений при сборке.

0 голосов
/ 19 ноября 2009

вы должны использовать exit /b %errorlevel% в вашем пакетном скрипте, это вернет код возврата обратно в nmake

...