Windows 将stderr编译输出复制到单独的文件中
我有一个项目,它通过使用make构建,我想增加可能性 分析警告消息的总体状态 我的想法是更改make规则,以便在完全重建期间将stderr编译输出复制到单独的文件中。意味着每次make all都将完成,所有输出将在控制台中打印,此外stderr输出将复制到单独的文件中 此警告报告文件将添加到存储库中,这样我就可以比较存储库中现有的警告和本地警告 问题是如何将stderr输出复制(而不是重定向)到单独的文件中?表示我应该如何更改Makefile中的all目标 我知道如何重定向stderr输出(makeall 2>warning_report.txt),但事实并非如此 我需要什么。警告消息应同时出现在主控制台输出和警告文件中 我使用Windows7作为工作环境,但我以前没有处理过Windows命令行或批处理文件 提前谢谢 编辑: 在我的情况下,最终解决方案如下所示:Windows 将stderr编译输出复制到单独的文件中,windows,batch-file,makefile,cmd,Windows,Batch File,Makefile,Cmd,我有一个项目,它通过使用make构建,我想增加可能性 分析警告消息的总体状态 我的想法是更改make规则,以便在完全重建期间将stderr编译输出复制到单独的文件中。意味着每次make all都将完成,所有输出将在控制台中打印,此外stderr输出将复制到单独的文件中 此警告报告文件将添加到存储库中,这样我就可以比较存储库中现有的警告和本地警告 问题是如何将stderr输出复制(而不是重定向)到单独的文件中?表示我应该如何更改Makefile中的all目标 我知道如何重定向stderr输出(ma
make all 3>&11>&2-2>&3-| tee.bat warning_report.txt
在本例中,脚本tee.bat,是用JScript for Windows编写的,我从PA指定的脚本中获取(谢谢)
关于交换,我从和中获取了它。我不了解windows,但您可以在Linux中使用
tee
命令进行交换。tee用于将STDOUT重定向到文件和控制台,以便您可以利用它并检查是否可以解决问题
make all 2>&11>stdout.log | tee stderr.log
将STDERR
重定向到STDOUT
,将STDOUT
重定向到STDOUT.log
,所有STDERR
也复制到控制台上的STDERR.log
ans
但解决方案尚未完成。
STDOUT
不会打印在控制台上,只会复制到STDOUT.log
。尝试使用命令,您将获得解决方案。我刚刚重新阅读了您的问题,并决定尝试回答它
下面是一个用于导出并显示stderr的代码片段
@echo off
if exist stderr.error del stderr.error
this_is_not_a_command 2>stderr.error
if exist stderr.error type stderr.error & del stderr.error
这将导出stderr
到一个文件,然后显示该文件的内容
希望能有所帮助。请参阅上一个问题,为什么不将其重定向到一个文件,然后显示文件内容?因为整个项目的编译时间大约为5分钟。很好奇,编译时间与我的评论有什么关系?谢谢您的帮助。由于现在我无法访问我的电脑,我现在无法尝试此功能。我星期一去试试。怎么样?这有帮助吗?我曾经尝试过使用这个方法,但最终我使用了上面解释的解决方案(见编辑部分)。