Continue after .exe finishes

조회 수: 18 (최근 30일)
SamiamO
SamiamO 2021년 6월 9일
편집: Walter Roberson 2021년 6월 10일
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