在Windows命令提示符(cmd.exe)中输出失败命令的输出

时间:2018-01-13 10:25:40

标签: windows cmd

我正在尝试将stderr重定向到stdout,然后使用tee在sceen上显示它并转储到文件。

当运行带有拼写错误的命令(cmd对'CommandNameWithATypo' is not recognized as an internal or external command, operable program or batch file.作出反应)时,我希望此错误消息显示在屏幕上并写入tee命令中指定的文件。但是,运行这个:

CommandNameWithATypo 2>&1 | tee test.txt

我在屏幕上没有输出也没有输出文件(没有创建文件),好像管道从未发生过。这是打算这样的吗?可能有解决方法吗?

1 个答案:

答案 0 :(得分:2)

问题是,“cmd知道最好放置重定向的位置”/用于证明,用>nul echo hello编写批处理文件(不要转向echo off),运行它并观察输出。您可以使用代码块强制它将重定向绑定到代码的预期部分:

( CommandNameWithATypo 2>&1 ) | tee test.txt 

(抱歉“你安装了tee,不是吗?”,但没有tee,你得到了你所描述的内容:没有。试试wrongCommand 2>&1 | notTee file.txt