Redirecting output to a text file from within a batch file
This article will explain different ways to redirect output from a text file.
Redirection operators in batch scripts
We can redirect the output of a batch file to a text file using redirection operators. Redirection operators redirect the input to a command or the output of a command.
When you run a batch file, the commands are executed in cmd.exe. The output of these commands is obtained through two streams, standard output and standard error.
These outputs can be redirected to separate files or to a single file.
The redirection operator is >
denoted by . By default, cmd uses >
for standard output, 1>
the same as .
However, it uses 2>
as standard error. Given below is the basic syntax of redirection operator.
command > filename
Redirecting output to a text file can be very useful. When the output range is long or when a command is executed at a certain time interval, the data must be saved.
Additionally, if an error occurs while running a batch file, the error disappears quickly and a blank console screen appears. In all cases, output and errors can be redirected to a text file.
When using batch files, it is better to redirect the output from within the batch file. So whenever you run it by double clicking it will redirect the output which is better than doing it manually from the command line every time.
Redirecting output using redirection operators in batch script
We can redirect the standard output of the entire batch file or a portion of it. Also, standard output and standard error can be saved in a single file or in separate files.
Redirecting standard output to a text file from within a batch file
To redirect standard output to a text file, add the redirection operator between the command and the text file as shown in the following syntax.
command > filename
For example, we have to redirect the output of the command powercfg to a text file named stdoutput.txt. The following command will create a new file named stdoutput.txt.
If the file already exists, it will be overwritten.
echo "The output will be redirected to a text file"
powercfg /a > stdoutput.txt
Output:
When you run a batch file, >
the operator overwrites the existing file with the new output. To keep the old output and append the new output, use >>
instead of >
appending the output to the same text file.
echo "The output will be redirected to a text file"
powercfg /a >> stdoutput.txt
Output:
Redirecting standard output and standard error in a batch file to separate text files
To redirect standard output (stdout) and standard error (stderr) to separate text files, use 1> for standard output and 2> for standard error, as shown below.
@echo off
echo "The output will be redirected to stdoutput.txt"
powercfg /a 1> stdoutput.txt
echo "The errors will be redirected to stderror.txt"
powercfg /energy 2> stderror.txt
Standard output:
Standard error:
Redirect all output from a batch file to a single file
We can save both standard output and standard error in a single file by using 2>&1 after the file name.
Its syntax is as follows:
@echo off
echo "The output will be redirected to stdoutput.txt"
powercfg /a > stdoutput.txt 2>&1
Output:
Similarly, to append both outputs to a single file, use >> instead of > in the above command.
ifconfig >> output.txt 2>&1
The output will be the same as if there were no errors in the file.
Redirecting output to a text file by calling a subroutine from within a batch file
Another way to redirect the output of a batch file to a text file is by using the call and sub commands. Given below is an example of calling a label subroutine.
@echo off
call:sub_ipconfig > ipconfig.txt
call:sub_powercfg > powercfg.txt
GOTO: END
:sub_ipconfig
ipconfig
EXIT /B
:sub_powercfg
powercfg /a
EXIT /B
:END
Output - ipconfig.txt:
Output – powercfg.txt:
Here, the call command is used to call the labeled subprograms. First, the subroutine sub_ipconfig is called and the output is redirected to a file named ipconfig.txt.
The second subroutine, sub_powercfg, is then called and the output is redirected to a file called powercfg.txt. The command exit /B
stops execution after this line and continues running the main program.
If we use exit instead exit /b
, it will stop the execution of the batch file.
So, we discussed two different ways to redirect output in batch files.
For reprinting, please send an email to 1244347461@qq.com for approval. After obtaining the author's consent, kindly include the source as a link.
Related Articles
在批处理脚本中使用 IF ELSE 和 GOTO
Publish Date:2024/03/15 Views:113 Category:编程语言
-
本教程将展示我们如何在批处理脚本中组合 IF ELSE 和 GOTO 命令。