以下批處理文件應該做你所需要的。它會在每個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