Windows 运行批处理文件MATLAB-dianatno

Windows 运行批处理文件MATLAB-dianatno,windows,matlab,batch-file,execution,openindiana,Windows,Matlab,Batch File,Execution,Openindiana,目前,我正在使用一个名为的有限元软件,我一直能够在MATLAB执行批处理文件的情况下运行“简单”模型。尽管如此,现在我开始使用更“复杂”的模型(只是更健壮,包含更多元素),但过程与我以前使用的完全相同。问题是,现在我无法从MATLAB运行模型,它显然开始运行,但突然停止。我正在使用以下命令: dos('path\filename.bat') 或 这两行都执行.bat文件。我认为我的文件有问题,所以我检查了它们,但显然它们没有问题。然后我双击了.bat文件,程序运行起来没有问题。然后我意识到问题

目前,我正在使用一个名为的有限元软件,我一直能够在MATLAB执行批处理文件的情况下运行“简单”模型。尽管如此,现在我开始使用更“复杂”的模型(只是更健壮,包含更多元素),但过程与我以前使用的完全相同。问题是,现在我无法从MATLAB运行模型,它显然开始运行,但突然停止。我正在使用以下命令:

dos('path\filename.bat')

这两行都执行.bat文件。我认为我的文件有问题,所以我检查了它们,但显然它们没有问题。然后我双击了.bat文件,程序运行起来没有问题。然后我意识到问题不在于文件,而在于MATLAB的执行。既然您已经了解了问题的背景,您能给我一些建议,以避免MATLAB在内部“扼杀”进程吗

MATLAB中显示的执行轨迹:

diana: working directory is *CURRENT DIRECTORY NAME*
diana: input file is *FILENAME*.dat
diana: command file is *FILENAME*.dcf
diana: output file is *FILENAME*.out
diana: filos file is diana.ff
DIANA JOB 8028 finished 
在批处理文件中直接双击跟踪执行如下:

在上图所示的注释文件中,包含了模型的输出,而直接从MATLAB执行时,这些文件不会出现,因为MATLAB在之前完成了该过程

提前感谢您的回答


Pd:我正在使用一台具有以下特征的计算机:Windows7、12 Gb RAM、操作系统64位、处理器Intel Xeon 2.53 GHz。

您运行的并不完全等同于双击.bat文件,特别是因为当前目录不同,如果批处理文件需要访问辅助文件(相对路径),那么这些文件就找不到了

尝试将其作为第一个命令添加到批处理文件中(或在echo关闭后立即添加)


以下是Diana支持团队提供的解决方案:

似乎MATLAB设置了一些环境符号来限制 每个线程的内存使用率

当您通过一个批处理文件从Matlab启动Diana时 符号都很好用

此类批处理文件可能类似于:

rem === Diana Environment Setup ===
    call "C:\Program Files\Diana 10.0\dialogin.bat"

rem Unset the symbols added by MATLAB
    set KMP_STACKSIZE=
    set KMP_HANDLE_SIGNALS=
    set KMP_BLOCKTIME=

rem start the diana job
    diana test2

谢谢让-弗朗索瓦·法布回答!我明白你的意思,但实际上,我正在改变MATLAB的当前目录,以避免你提到的内容。但是,我尝试了您建议的方法,在批处理文件中包括以下行:[rem===Diana环境设置===//调用“C:\Program Files\Diana 10.0\dialogin.bat”//Cd/d%~dp0//Diana文件名]。但不幸的是,同样的问题仍然存在。好的,然后在批处理文件的末尾添加一个
pause
语句。如果它在matlab中失败,至少你会明白原因。这是我在MATLAB的命令窗口中获得的:diana:working directory是CURRENTDIRECTORY//diana:input file是FILENAME.dat//diana:command file是FILENAME.dcf//diana:output file是FILENAME.out//diana:filos file是diana.ff//diana作业8028完成//没有报告任何问题。我已经编辑过了你的帖子有执行痕迹。可以随意接受/拒绝编辑,但最好是在问题中发布有matlab(直接双击)和没有matlab(直接双击)的执行跟踪。我可能会删除我的答案,因为它不能解决您的问题,在这种情况下,所有的评论也会被删除(而且在问题中更容易阅读!)好吧,让我们按照您的建议做吧。
Cd /d %~dp0
rem === Diana Environment Setup ===
    call "C:\Program Files\Diana 10.0\dialogin.bat"

rem Unset the symbols added by MATLAB
    set KMP_STACKSIZE=
    set KMP_HANDLE_SIGNALS=
    set KMP_BLOCKTIME=

rem start the diana job
    diana test2