MATLAB Answers

0

Feedback from Command/DOS window

Asked by Reto Christen on 9 May 2019
Latest activity Commented on by Reto Christen on 9 May 2019
Hello,
I have some problems while working with an external command window.
In Matlab I have to run an executable which will connect to a server. Setting up this connection takes roughly 10 to 20 seconds and the port number of the connection is then written into this command window. I am now looking for a possibility to read out this port number, since it is vital for my next steps in Matlab.
I tried to run the command
[status,cmdout] = system('mycommand.exe &');
However, since the server first has to connect, cmdout is just an empty string. I there a possibility to 'rerun' the command to get the correct cmdout-value?
Right now I am using a Matlab Input-Dialog to get the port number manually. It works but a nicer automated solution would be prefered.
I would greatly appreciate your help.

  2 Comments

You could try the dos command, without the trailing ampersand. That way Matlab might wait, and not try to do it in the background.
Thanks for your reply.
Unfortunately, mycommand.exe not only opens the connection but it keeps it open while using the server. For this reason, mycommand.exe must be running in the background (I should have written this more clearly, sorry). Hence, an ampersand is needed.
Using the dos command actually returned the wanted string, but well, my application cannot continue and everything is 'blocked'.

Sign in to comment.

Products


Release

R2018b

1 Answer

Answer by Fangjun Jiang on 9 May 2019

I don't know if this old trick could work. Try system('mycommand.exe & >output.txt'). Hope all the output would be re-directed to the specified text file. It might take a while for your mycommand.exe to finish. But once the output is saved in a text file, your next run could read it and get the info.

  1 Comment

Thanks for your reply.
This would be the perfect command for me. Unfortunately, I get the error message The syntax of the command is incorrect, but only with the ampersand. system('mycommand.exe >output.txt') works as excpected, but again the same problem with the 'blocked' application.

Sign in to comment.