2

我必须从 .m 文件 Gen.m 中执行一个独立的应用程序 aTool.exe。
我在 Gen.m 中放了一个命令来执行 aTool.exe 作为

system('aTool.exe');

它工作得很好。但是,因为 aTool.exe 有很多打印到命令窗口,所以要花很长时间才能完成运行此命令。我写了 Gen.m。“aTool.exe”是一个开源应用程序,所以我无法访问源代码。aTool.exe最后应该生成3个文本文件,Result1.txt、Result2.txt和Result3.txt。当它运行时,它会在屏幕上打印出一些处理消息。这三个文本文件是我需要的,但在运行时我不需要那些处理消息。

有谁知道当我运行 Gen.m 文件时如何停止“aTool.exe”打印到命令窗口?我努力了

matlab -nodisplay -nojvm -nosplash -nodesktop -r Gen > matlab.out

它没有用。命令窗口仍然弹出并开始打印。

4

1 回答 1

1

system您可以使用的输出参数在变量中捕获输出。这将让您检查错误,并可能从输出中提取有用的位。只要您使用分号来抑制回显,它就不会显示在命令窗口中。

[status,result] = system('aTool.exe');

或者我认为你可以在系统调用中使用重定向来丢弃它的输出。

system('aTool.exe > NUL');

从长远来看,以第一种方式捕获输出将使调试更容易。但如果它真的是大量的输出,你最终可能会缓冲大量数据。

于 2012-10-02T04:47:37.677 回答