Say you have a program that gives a lot of output. It seems that Command Prompt unfortunately doesn't keep all of it (there's only so far you can scroll up).
Is there a way to keep all of it?
Increasing the buffer size is the best way if you just want to scroll up and see the output, which you can configure in properties.
If you are appending to a file, you'll also probably want the errors in case there are any:
C:\>somecommand.exe > "C:\path\to\output.txt" 2>&1
If you want a pager, there is more
or less for Windows.
example:
C:\>somecommand.exe | less
you can then use f to page forward or b to go backward.
Layout
> Screen Buffer Size
> Height
, not Options
> Command History
> Buffer Size
.
Commented
Jul 26, 2016 at 13:58
To just capture output to a file, see other answers. You can also increase the amount to text you can scroll back and see up to a limit.
With the command prompt window open, click the [C:] icon in the title bar to bring up the menu and select properties. Under the Layout tab, change the Screen Buffer Size->Height to 9999. That will allow you to scroll back that many lines in the window.
Are you using Windows XP if so you could append to your command | more
Alternatively you could use
command redirection operators
.
This page has more info for you.
Output the results to a file, like this:
C:> RunMyProgram.exe > outputfile.txt
you can increase the buffer size on command history (defaults to 50) on properties. you could try to something like 500 or even 5000, than you should be able to scroll up a lot more.
another way is to redirect the output to a file using the ">" char:
ex:
C:> someCommand > output.txt
than open the txt file and you should see the output for the command there.
This question is old, but I'd like to add a newer Windows feature as an option. As stated in other answers, Less
and More
are easy to use, but if you need ultimate flexibility, you can redirect the stdout stream to a file with >
. However, this leaves messy temporary files behind. Since Windows Vista, you can instead pipe the stdout stream directly to the clipboard with the clip command, like this:
c:\> someprogram.exe param1 param2 | clip
With that, you can then paste the output of the program or command into Notepad or other editor, do searches, make notes, copy or save elsewhere, etc. When you're done, just close the editor and it's gone with no cleanup necessary.
Note that if you're using CMD, this |clip
command will not pass a newline at the end. In PowerShell, it will. If you want to do this in PowerShell without the newline, you can use |scb
instead. This is a short alias for the Set-Clipboard cmdlet. |clip
is available in both CMD and PowerShell. |scb
is available only in PowerShell.