我想出了一个办法做到这一点,我也这样做了詹金斯Matlab的界面窗口。
基本思想是,你将使用日记命令,但后来尾部的文件,但如果你打开多个matlab实例,因为会有名称冲突,你需要一个聪明的方式杀死tail命令。所以我使用的方法是命名文件log.txt,其中使用的PID是MATLAB打开时使用的PID。
有一个在MATLAB无证功能,可以让你得到它的PID。所以,现在,批处理文件和MATLAB都知道PID,而无需读取/写入随机文本文件,这会在执行多个作业时变得杂乱无章。所以你使用它作为你的唯一标识符。MATLAB还使用MATLAB的tail -f来杀死尾部-f以使批处理文件死亡并且由MATLAB使用与进程调用相关联的命令行细节找到,因为它再次使用唯一PID日志文件名。
这使用了一些wmic命令,需要Windows Vista/7或更高版本。对于XP,您可能必须更加努力才能获得进程ID,但应该仍然有可能。
这里是做什么:
3)确保尾和awk (窗口资源工具包,我不认为会自动将它们放在路径中)
3)创建一个名为matlabrun.bat的批处理文件,如下所示(注意:您需要@echo off,也可以整个命令是相当长,向右滚动..)
@echo off
wmic process call create "c:\matlab\bin\win64\matlab.exe -r \"cd('c:\jenkins\workspace\test'); workdir=pwd; outpath=[pwd '\output'] ; try; run('C:\MATLAB\work\test_r