2

我有一个基于 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%  

如果我控制-c nmake 任务,我最终会得到一个非零的 ERRORLEVEL(它设置为 2)所以我的假设是我能够捕获错误,但是 nmake 不会冒泡非零从它的任务中退出代码。或者,至少,我误会了它。任何帮助,将不胜感激。

4

2 回答 2

1

首先,请发布您的批处理文件,以便我们了解您如何捕获错误。
也评论这篇文章,以便我可以再次阅读。
作为第一个 git,我猜是这样的:

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

是在构建时将所有情况捕获到递增日志中的开始。

于 2009-08-25T12:20:06.873 回答
0

您应该exit /b %errorlevel%在批处理脚本中使用这会将返回码传递回 nmake

于 2009-11-19T19:38:31.580 回答