关于cmd命令的重定向输出 2>&1
mycommand >mylog.txt 2>&1 应该是最经典的用法了。
命令的结果可以通过“%>”的形式来定向输出,%表示文件描述符:
1为标准输出stdout、2为标准错误stderr。
系统默认%值是1,也就是“1>”,而1>可以简写为>,也就是默认为>。stdout的默认目标是终端,stderr的默认目标为也是终端。我们在批处理中执行: echo text >result.txt ,我们就可以在屏幕上会看到 echo text 1>result.txt ,即是这个道理。
其中&需要直接与重定向符号结合使用。
应用实例:
1、将结果输出到result.txt
net stop myservices >>result 2>&1
2、隐藏程序输出结果
net stop myservices >nul 2>nul
微软关于重定向的文章:使用命令重定向操作符
可以使用重定向操作符将命令输入和输出数据流从默认位置重定向到其他位置。输入或输出数据流的位置称为句柄。
下表将列出可用的句柄。
句柄 句柄的数字代号 描述
STDIN 0
键盘输入
STDOUT 1
输出到命令提示符窗口
STDERR 2
错误输出到命令提示符窗口
UNDEFINED 3-9
句柄由应用程序单独定义,它们是各个工具特有的
数字 0 到 9 代表前 10 个句柄。可以使用命令 Cmd.exe 运行程序