In command prompt - How do I export all the content of the screen to a text file(basically a copy command, just not by using right-clicking and the clipboard)
This command works, but only for the commands you executed, not the actual output as well
doskey /HISTORY > history.txt
If you are looking for each command separately
To export all the output of the command prompt in text files. Simply follow the following syntax.
The above command will create result of syntax in file.txt. Where new file.txt will be created on the current folder that you are in.
For example,
To copy the whole session, Try this:
How about this:
Example:
This will give the results in Notepad instead of the command prompt.
If you want to append a file instead of constantly making a new one/deleting the old one's content, use double
>
marks. A single>
mark will overwrite all the file's content.Overwrite file
^This will open file.txt if it already exists and overwrite the data, or create a new file and fill it with your output
Append file from its end-point
^This will append file.txt from its current end of file if it already exists, or create a new file and fill it with your output.
Update #1 (advanced):
My batch-fu has improved over time, so here's some minor updates.
If you want to differentiate between error output and normal output for a program that correctly uses Standard streams,
STDOUT
/STDERR
, you can do this with minor changes to the syntax. I'll just use>
for overwriting for these examples, but they work perfectly fine with>>
for append, in regards to file-piping output re-direction.The
1
before the>>
or>
is the flag for STDOUT. If you need to actually output the number one or two before the re-direction symbols, this can lead to strange, unintuitive errors if you don't know about this mechanism. That's especially relevant when outputting a single result number into a file.2
before the re-direction symbols is for STDERR.Now that you know that you have more than one stream available, this is a good time to show the benefits of outputting to
nul
. Now, outputting tonul
works the same way conceptually as outputting to a file. You don't see the content in your console. Instead of it going to file or your console output, it goes into the void.STDERR to file and suppress STDOUT
MyCommand.exe 1>nul 2>errors.txt
STDERR to file to only log errors. Will keep STDOUT in console
MyCommand.exe 2>errors.txt
STDOUT to file and suppress STDERR
MyCommand.exe 1>file.txt 2>nul
STDOUT only to file. Will keep STDERR in console
MyCommand.exe 1>file.txt
STDOUT to one file and STDERR to another file
MyCommand.exe 1>stdout.txt 2>errors.txt
The only caveat I have here is that it can create a 0-byte file for an unused stream if one of the streams never gets used. Basically, if no errors occurred, you might end up with a 0-byte errors.txt file.
Update #2
I started noticing weird behavior when writing console apps that wrote directly to
STDERR
, and realized that if I wanted my error output to go to the same file when using basic piping, I either had to combine streams1
and2
or just useSTDOUT
. The problem with that problem is I didn't know about the correct way to combine streams, which is this:%command% > outputfile 2>&1
Therefore, if you want all STDOUT and STDERR piped into the same stream, make sure to use that like so:
MyCommand.exe > file.txt 2>&1
The redirector actually defaults to
1>
or1>>
, even if you don't explicitly use1
in front of it if you don't use a number in front of it, and the2>&1
combines the streams.Copying a CMD or Powershell session's command output
If all you want is the command output from a CMD or Powershell session that you just finished up, or any other shell for that matter you can usually just select that console from that session, CTRL + A to select all content, then CTRL + C to copy the content. Then you can do whatever you like with the copied content while it's in your clipboard.
Just see this page
in cmd type:
Then open a
*.Txt
file andPaste
. That's it. Done.If your batch file is not interactive and you don't need to see it run then this should work.
Otherwise use a
tee
filter. There are many, some not NT compatible. SFK the Swiss Army Knife has a tee feature and is still being developed. Maybe that will work for you.From command prompt Run as Administrator. Example below is to print a list of Services running on your PC run the command below:
You should see a copy of the text file you just exported with a listing all the PC services running at the root of your
C:\
drive.