Обработка nmake ошибок / кодов возврата

У меня есть проект на основе 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%  

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

2 ответа

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

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

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

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

Другие вопросы по тегам