Suppressing command output

I am using the function "system(<SOME COMMAND>)" in a function. The command I'm calling has a lot of screen outputs that I'd like to suppress. How can I do that?

 Accepted Answer

try below. It just saves the screen outputs.
system('dir >output.txt')

4 Comments

Works. It's been so long since I've had to remember the old DOS commands. Thanks!
Or if you honestly don't care about the screen output,
system('dir 1>NUL 2>NUL')
Will just send it off to the bit-bucket.
Thanks, Jason! Nice to know. Is this 1 and 2 refer to MATLAB fid 1 and 2?
I've always thought of it as stdout (1) and stderr (2). I've used this extensively outside of MATLAB for other scripting duties. There's a nice summary of redirection commmands at
http://www.robvanderwoude.com/redirection.php

Sign in to comment.

More Answers (1)

It's also possible to use "system" (console) based filtering to avoid the whole output to be redirected to Matlab. For example, taking a directory listing in Windows environment:
% the first part only lists text files, including details
% the part after the pipe filters relevant lines
% (to only dump filenames, use 'dir /b' instead)
sys_cmd = 'dir "C:\MyDirectory\*.txt" | find ".txt"';
system(sys_cmd, '-echo');
I wouldn't generally recommend using system calls often, as it may easily break the possibility of porting your software/environment to another platform. But for quick experiments/diagnostics it can become very handy, specially if one is familiar with command-line environment.

Categories

Products

Community Treasure Hunt

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

Start Hunting!