Print command window output on command prompt of windows (cmd)
64 次查看(过去 30 天)
显示 更早的评论
Hey everyone,
I hope you all are in good health.
I have a question about how to automatically write everything that displays on command windows simultaneously on the command prompt of windows (cmd).
here is what I have found for storing the command window of Matlab to a file and then publishing it as an HTML file to the browser,
myFile = 'commandWindowText.txt';
if exist(myFile, 'file')==2
delete(myFile);
end
diary(myFile)
diary on
% ---- || what i want to display in the command window
syms x
eq = 'x^4 + 2*x + 1';
s = solve(x^4 + 2*x + 1, x,'MaxDegree',3);
disp(['the equation is: ' eq])
disp(['and the result is: ' ])
pretty(s)
diary off
% ---- || open the file to get the content as a string
fid = fopen(myFile,'r');
f=fread(fid,'*char')';
fclose(fid);
% ---- || adapt the text file to html
f=strrep(f,'\','\\'); % thanks to mahoromax's comment (accomodates windows file paths)
f=strrep(f,newline,'<br>');
f=strrep(f,' ',' ');
f=['<p style = "font-family:monospace" >',newline,f,newline,'</p>'];
% ---- || write the file and view it on the broweser
fid=fopen('diary_file.html','w');
fprintf(fid,f);
fclose(fid);
winopen('diary_file.html') % windows only?
in addition to the HTML version i need to send this information to the cmd of windows, but i dont know how
1- open command prompt
2 - send text to command prompt.
any help appreciated.
6 个评论
dpb
2021-7-4
"I want to create a stand-alone app with an app designer and I need to show some progress..."
App Designer doesn't built a console; use something like a progress bar or whatever controls in the app widget collection instead.
Don't try to pound a square peg into a round hole; the way you're trying to go is not going to be satisfactory even if you can manage to cobble something together.
采纳的回答
Walter Roberson
2021-7-5
If you are using Windows then use .NET controls System.Diagnostics.Process to create a link to either PowerShell or CMD.exe. Anything that you write to the end point will then be sent to the process to be executed (or interpreted as input).
However, I do not understand how executing the matlab output as shell commands will be beneficial in any way. But that is what pasting the output to the command prompt means, that you want the output to be executed as commands.
8 个评论
Walter Roberson
2021-7-5
MATLAB can run the GoLANG process, using System.Diagnostics.Process . Or GoLANG can run MATLAB and read its standard output and standard error. Or something else could invoke each of them and take care of merging the outputs.
Note that in MATLAB if you fopen() a file with 'a' access, then every fprintf() or fwrite() to the file will result in a fseek() to end of file, even if a different program is writing to the same file . So if you were careful to do things like
NOW = char(datetime('now', 'Format', 'yyyyMMdd HH:mm:ss.SSS'));
fprintf(fid, 'AN7: %s: error coefficient is %.5g\n', NOW(), slice_err);
which writes an entire (time-stamped) line, then the operating system would guarantee that it will appear as a line by itself, not scrambled up with output from the GoLang program.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Debugging and Analysis 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!