我正在尝试将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
我在屏幕上没有输出也没有输出文件(没有创建文件),好像管道从未发生过。这是打算这样的吗?可能有解决方法吗?
答案 0 :(得分:2)
问题是,“cmd知道最好放置重定向的位置”/用于证明,用>nul echo hello
编写批处理文件(不要转向echo off
),运行它并观察输出。您可以使用代码块强制它将重定向绑定到代码的预期部分:
( CommandNameWithATypo 2>&1 ) | tee test.txt
(抱歉“你做安装了tee,不是吗?”,但没有tee
,你得到了你所描述的内容:没有。试试wrongCommand 2>&1 | notTee file.txt
)