以下批处理文件应该做你所需要的。它会在每个msbuild作业之后检查是否成功完成,如果作业失败(由errorlevel> 0指示),则通知用户(在CMD窗口中)并退出。当两个作业完成时,它都会告诉用户。
你说,“我已经按照一个bat文件的命令”,所以我认为这是从VBS文件名为蝙蝠,它包括调用vsvars32.bat。如果这个是 vsvars32.bat,显然你需要删除这个调用并把剩余的代码放到那个bat中。
@echo off
cls
echo. &echo
call "%VS130COMNTOOLS%\vsvars32.bat"
cd c:\working\develop
:: Job 1
set errorlevel=0
msbuild/t:clean
If %errorlevel% NEQ 0 set "job=msbuild/t:clean" &goto err
:: Job2
set errorlevel=0
msbuild/p:configuration=%1
If %errorlevel% NEQ 0 set "job=msbuild/p:configuration=%1" &goto err
:: Success
echo msbuild jobs completed successfully
echo Will exit when you press any key. &pause >nul &exit
:err
echo ERROR: %job% failed to complete
echo Will exit when you press any key. &pause >nul
exit
'msbuild'提供一个错误级别? (把'echo%errorlevel%'放到下面一行并试试)大多数程序如果成功则返回'0'或者任何失败返回“非零”。 – Stephan 2014-11-23 08:18:07
@Stephan,我想知道错误代码的一样。几个小时的研究显示了一系列的失败错误代码,但广泛的共识(特别是在MSDN)成功完成返回errorlevel 0. – sjoy 2014-11-23 10:35:43
@sjoy,是的,每个开发人员都可以自由选择他们想要的(或使用任何错误级别一个退出代码)。只有认为“0”才能成功,但是一旦我甚至看到错误级别“1”表示“成功”...... – Stephan 2014-11-23 10:47:02