带有cmake的批处理文件中具有条件的子例程

时间:2015-02-09 10:56:16

标签: batch-file

我编写了一个用于制作自动化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 ...

你能说我为什么吗?

由于

0 个答案:

没有答案