Who besides me likes to keep a backup of their work? Microsoft has given an option in all their command-line utilities, Command Prompt, PowerShell, and Windows Terminal to send Command output to a text file. In this post, we will see how that’s done.
How to send Command Output to Text file
Before we see how to send command output to a text file in Command Prompt, PowerShell, or Terminal, let us see how the command runs.
When you enter a command and hit enter, its output will get redirected to the following streams.
- Standard Out or STDOUT: Standard Out is where standard responses from commands go, like a list of files for the DIR command.
- Standard Error or STDERR: Standard Error is the stream where error messages are displayed if there is an issue with a command. For instance, if a directory doesn’t contain any files, the DIR command will output “File Not Found” to the Standard Error stream.
You can redirect output to a file in Windows for both of these output streams. Now, let us see how to send command-line outputs to text files. Do keep in mind that the following procedure works for Command Prompt, PowerShell and Windows Terminal.
Send output to a new file
Sending the output of a particular command to a test file is pretty simple. All you need to do is follow the syntax mentioned below and you will be good to go.
Syntax:
command > file-location/filename.txt
For example, I want to save ping Google.com and save the output in a file, so, I would go with the following command.
ping google.com > C:\Users\yusuf\OneDrive\Desktop\CommandOutput.txt
Here, > is supposed to instruct the console to save the output of the command to the file mentioned there.
Pro Tip: If are not sure what’s the exact location of that file, right-click on it and select Properties. Now, copy the path from the Location section.
Append output in the same file
If you want to add something to the original file, do that using >> character. This character will append the output of the command to the provided text file. If you give > instead of >>, the file will be overwritten.
Syntax:
command >> file-location/filename.txt
So, my new command would be something like,
tracert google.com >> C:\Users\yusuf\OneDrive\Desktop\CommandOutput.txt
Similarly, you can go on writing to that very file without worrying about your earlier outputs.
Send Errors to a separate file
You can actually separate the STDOUT and STDERR using the 2> command. So, your standard output will be stored in one file and then the error will be redirected to a separate error file.
Syntax:
command > file-location/filename.txt 2>output.err
Send Output and Error to a single file
If you want to send both output and error to a single file, use 2>&1. This alters the syntax of our command.
Syntax:
command > file-location/filename.txt 2>&1
The standard output is directed to output file number 1, while the standard error output, identified by number 2, is redirected to output file number 1.
That’s it!
Read: How to create large size dummy files in Windows
How to send cmd output to txt file?
To send a CMD output to a text file, we can use the Greather-than (>) sign. It takes the command as an input and stores its output in the file provided. You can follow the earlier guide to know the correct syntax with examples.
Read: How to Run Batch Files silently in background on Windows
How to save CMD ping output to a text file?
To save the CMD ping out, run ping <IP-address> > file-location/filename.txt or ping <URL> > file-location/filename.txt. To know about it, refer to the guide provided earlier.
Also Read: Basic Command Prompt Tips for Windows.