Continue after .exe finishes

15 次查看(过去 30 天)
Hi,
I am running an external .exe file that returns something to the matlab command line once it has finished. I would like to use this in an optimization but currently the enter key needs to be pressed in the command line in order for the .exe to close and then for the matlab code to continue.
Here's how i'm calling the .exe: eval(['!program',tempfilename]);
Is there a way I can continue after it has finished? I have tried a timer and the java robot, but neither seem to work.
Thanks,
  1 个评论
Rik
Rik 2021-6-9
You will have to find a way to get your program to work without interaction.
Also, why aren't you using system instead of eval?

请先登录,再进行评论。

采纳的回答

Joel Lynch
Joel Lynch 2021-6-9
编辑:Joel Lynch 2021-6-9
You can use system() function to pass the command (as a string) without the "!" symbol. If using unix OS, you can pipe (with the | character) a newline character entry ( with echo -e '\n') to a program. System will wait until both commands are completed. Note: the double apostrophes around \n are needed as escape characters and print an apostrophe.
system(['echo -e ''\n'' | ',some_exe_str]);
Not sure if using Windows...
  8 个评论
Rik
Rik 2021-6-9
Or with the double quote:
status = system( [ 'echo. | program "' tempfilename '"'] );
SamiamO
SamiamO 2021-6-10
Thanks all, working perfectly now! - also the period is not necessary, thanks for pointing that out.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 MATLAB 的更多信息

标签

产品


版本

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by