我编写了一个用于制作自动化cmake和nmake的批处理文件,但是里面有条件和子程序的问题。我想发送一封电子邮件"当且仅当" levelerror
不等于0.但是当我提出这个问题时,他无论如何都会进入子程序。
我已将许多echo %errorlevel%
用于调试......但我无法找到错误。
这是我的剧本:
cd C:\Users\name-user\Documents\Repos\corealpi\cmake\nmake
echo %errorlevel%
rm -R *
echo %errorlevel%
rmdir /q /s ..\..\build\cmake_x86d\
echo %errorlevel%
call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat"
echo %errorlevel%
>"..\log\mailCmakeDeb.txt" cmake -DCMAKE_BUILD_TYPE=Debug -G"NMake Makefiles" ..\
echo %errorlevel%
if %errorlevel% neq 0 goto :mailcmaked
echo %errorlevel%
>"..\log\buildDeb.log" nmake
echo %errorlevel%
if %errorlevel% neq 0 goto :mailnmaked
echo %errorlevel%
pause
:mailcmaked
sendEmail -f from@mail.com -u "cmake failed" -t someone@mail.com -m "cmake debug failed" -a ..\log\mailCmakeDeb.txt -s 192.168.x.x
echo %errorlevel%
exit 1
:mailnmaked
grep -Eo '.{0,20}error.{0,100}' ..\log\buildDeb.log > ..\log\mailBuildDeb.txt
sendEmail -f from@mail.com -u "build debug/x86 failed" -t someone@mail.com -m "Nmake debug failed" -a ..\log\mailBuildDeb.txt -s 192.168.x.x
echo %errorlevel%
exit 1
我总是错误= 0但仍然要:mailcmaked
...
你能说我为什么吗?
由于