在 Windows 7 企业版上运行 matlab R2010B
在 matlab 脚本中,我将一堆结果保存到一个 word 文件中,然后在最后关闭并退出 word。我使用的代码是:
WordFname = ['BatInfoDoc' sprintf('%0.3f',now) '.doc']; % serialnumbered filenames
WordFile = fullfile(pwd,WordFname);
WordApp = actxserver('Word.Application');
WordDoc = WordApp.Documents.Add;
WordDoc.SaveAs2(WordFile);
....
WordApp.Selection.TypeText([title2 title3 title4 title5 title6]);
WordApp.Selection.TypeParagraph;
然后终于在脚本的结尾
WordDoc.Close;
WordApp.Quit;
我遇到的问题是,在我的开发过程中,我经常使 matlab 脚本崩溃并最终留下孤立的 WINWORD.EXE 进程,每个进程都锁定它正在编写的文件。
到目前为止,我一直在使用 TaskManager 手动杀死这些进程。整个上午都在开发,我发现自己有大约 20 个无法删除的文件,因为它们被大约 11 个孤立的 WINWORD.EXE 进程锁定!
我的问题: 1) 是否有一种优雅的方式来处理文件写入、保存和关闭等等,所以当我的脚本在我到达关闭的部分之前崩溃时,我不会锁定文件和进程文件和退出词?2)是否有一种优雅的方法可以从 matlab 脚本中确定不良进程并从 matlab 脚本中删除它们?也就是说,我可以编写我的 matlab 代码以便它自行清理吗?
几分钟后添加:顺便说一下,我不希望将我的所有代码都包含在一个大的 try-catch 中,然后在我发现我的错误后关闭窗口。问题是我确实喜欢在出错时进入调试模式,并且捕获的错误不会让我进入调试模式。