gpt4 book ai didi

返回代码大于零的 Matlab 退出力

转载 作者:行者123 更新时间:2023-12-04 23:52:29 28 4
gpt4 key购买 nike

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

   matlab.exe -nosplash -nodesktop -r my_script

我在 Matlab 脚本中有一个 try/catch block ,出错时它运行 exit(1),以向调用进程(间接地,Jenkins!)指示进程失败。

这很好用,除了偶尔因错误退出 Matlab 想要保存任何修改过的文件并弹出一个保存对话框(当你使用 Jenkins headless 运行时不是很好!)。我可以通过“强制退出”来避免这种情况,但我的返回代码始终为 0(表明 Jenkins 成功)。

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

   exit(1) force

最佳答案

我也试图找出解决这个问题的办法。由于使用环境变量没有按照我们想要的方式工作,我创建了一个解决方法,使用一个虚拟文件,每当 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

关于返回代码大于零的 Matlab 退出力,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17805622/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com