首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何以编程方式区分交互式和批处理过程?

如何以编程方式区分交互式和批处理过程?
EN

Stack Overflow用户
提问于 2014-08-12 17:49:45
回答 3查看 119关注 0票数 0

我有一些脚本,我想在后台运行在我的桌面(Windows 7)机器上。我理解,要做到这一点,我需要使用如下命令启动MATLAB:

matlab -nosplash -noFigureWindows -r "myScriptName"

我还理解,要使这一工作顺利进行,我需要在脚本的末尾包含一个exit命令。

是否有一种方法可以可靠地确定脚本是在后台进程中运行还是以交互方式运行?我想避免在交互过程中无意中运行脚本并意外地杀死MATLAB会话的情况。

代码语言:javascript
复制
if ~RunningInInteractiveMode
    exit
end

是否有一个函数或其他布尔测试可以替代~RunningInInteractiveMode?我看过these methods,但是-noDesktop没有选项,所以总是有一个命令窗口打开(辅助问题:在没有完全打开命令窗口的情况下,一个人能在Windows中完全运行MATLAB吗?)如果有关系,我正在运行r2014a。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-08-12 17:56:18

您可以使用参数来运行脚本:

代码语言:javascript
复制
matlab -nosplash -noFigureWindows -r "background=true;myscript"

这样,在脚本的末尾:

代码语言:javascript
复制
if exist background
    exit
end
票数 4
EN

Stack Overflow用户

发布于 2014-08-12 18:46:19

使用feature('ShowFigureWindows')检查是否使用-noFigureWindows,使用usejava('jvm')检测JRE是否可用。

代码语言:javascript
复制
background_task=~feature('ShowFigureWindows')||~usejava('jvm')
票数 1
EN

Stack Overflow用户

发布于 2018-08-27 05:17:57

不需要将exit添加到脚本中,可以将其添加到命令行:

代码语言:javascript
复制
matlab -nosplash -noFigureWindows -r "myScriptName;exit"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25270908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档