从批处理文件中将输出重定向到文本文件
本文将介绍从文本文件中重定向输出的不同方法。
批处理脚本中的重定向运算符
我们可以使用重定向运算符将批处理文件的输出重定向到文本文件。 重定向运算符将输入重定向到命令或命令的输出。
运行批处理文件时,该命令在 cmd.exe 中执行。 这些命令的输出通过两个流获得,即标准输出和标准错误。
这些输出可以重定向到单独的文件或单个文件。
重定向运算符由 >
表示。 默认情况下,cmd 使用 >
作为标准输出,与 1>
相同。
但是,它使用 2>
作为标准错误。 下面给出了重定向运算符的基本语法。
command > filename
将输出重定向到文本文件可能非常有用。 当输出范围很长或在一定时间间隔内执行命令时,必须保存数据。
此外,如果运行批处理文件时发生错误,错误很快就会消失并显示空白控制台屏幕。 在所有情况下,输出和错误都可以重定向到文本文件。
使用批处理文件时,最好从批处理文件内重定向输出。 因此,每当您通过双击运行它时,它都会重定向输出,这比每次从命令行手动执行要好。
在批处理脚本中使用重定向运算符重定向输出
我们可以重定向整个批处理文件或其中一部分的标准输出。 此外,标准输出和标准错误可以保存在单个文件或单独的文件中。
从批处理文件中将标准输出重定向到文本文件
要将标准输出重定向到文本文件,请在命令和文本文件之间添加重定向运算符,如下面的语法所示。
command > filename
例如,我们必须将命令 powercfg 的输出重定向到名为 stdoutput.txt 的文本文件。 以下命令将创建一个名为 stdoutput.txt 的新文件。
如果该文件已经存在,它将被覆盖。
echo "The output will be redirected to a text file"
powercfg /a > stdoutput.txt
输出:
运行批处理文件时,>
运算符会使用新输出覆盖现有文件。 要保留旧输出并附加新输出,请使用 >>
而不是 >
将输出附加到同一文本文件。
echo "The output will be redirected to a text file"
powercfg /a >> stdoutput.txt
输出:
将批处理文件中的标准输出和标准错误重定向到单独的文本文件
要将标准输出 (stdout) 和标准错误 (stderr) 重定向到单独的文本文件,请使用 1> 表示标准输出,使用 2> 表示标准错误,如下所示。
@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
标准输出:
标准误差:
将批处理文件中的所有输出重定向到单个文件
我们可以在文件名后使用 2>&1 将标准输出和标准错误保存在单个文件中。
其语法如下所示:
@echo off
echo "The output will be redirected to stdoutput.txt"
powercfg /a > stdoutput.txt 2>&1
输出:
同样,要将两个输出附加到单个文件,请在上述命令中使用 >> 而不是 >。
ifconfig >> output.txt 2>&1
输出将与文件中没有错误相同。
通过从批处理文件中调用子例程将输出重定向到文本文件
将批处理文件的输出重定向到文本文件的另一种方法是使用 call 和 sub 命令。 下面给出了调用标记子例程的示例。
@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
输出- ipconfig.txt:
输出-powercfg.txt:
这里,call 命令用于调用标记的子程序。 首先,调用子例程 sub_ipconfig,并将输出重定向到名为 ipconfig.txt 的文件。
然后调用第二个子例程 sub_powercfg,并将输出重定向到名为 powercfg.txt 的文件。 命令 exit /B
在该行之后停止执行并继续运行主程序。
如果我们使用 exit 而不是 exit /b
,它将停止批处理文件的执行。
因此,我们讨论了在批处理文件中重定向输出的两种不同方法。