Matlab退出力,返回码大于零

时间:2013-07-23 08:54:42

标签: matlab jenkins

我有一个Matlab R2007b脚本,我从这样的批处理脚本调用:

   matlab.exe -nosplash -nodesktop -r my_script

我在Matlab脚本中有一个try / catch块,如果出错就运行exit(1),向调用进程(间接地,Jenkins!)表明进程已经失败。

这种方法很有效,除非偶尔退出,因为错误Matlab想要保存任何修改过的文件并弹出一个保存对话框(当你用Jenkins运行无头时不是很好!)。我可以通过'退出力'来避免这种情况,但我的返回代码始终为0(表示Jenkins成功)。

Matlab中是否可以强制退出并设置大于零的返回码?

   exit(1) force

1 个答案:

答案 0 :(得分:0)

我还试图找到解决此问题的方法。由于使用环境变量无法实现我们想要的方式,因此我创建了一个伪文件,该伪文件在Matlab调用失败时创建,然后在Jenkins中检入(当前没有Matlab访问,可能有些引号错误): >

matlab -r "try, [returnVal]=ScriptName;catch, disp('exception occurred']); returnVal= -1; end, if (returnVal~= 0), fid = fopen('errorFile.txt','wt'); fclose(fid); end, exit force"

IF EXIST errorFile.txt (exit /b 1)

通常,通常,对于Windows,在matlab调用中包括其他参数也很有意义,例如:

matlab -log -nosplash -nodesktop -noFigureWindows -minimize -wait