使用IAR Embedded Workbench IDE构建嵌入式项目时,我们使用具有多个后处理命令(ELF可执行解析器/过滤器)的批处理文件来生成最终的可加载图像。
问题在于,似乎每个工具调用都会打开一个新的终端窗口,在那里短暂运行并关闭,从而有效地消除了跟踪其消息的可能性。
将主批处理文件的输出定向到文件时,它只记录批处理文件的命令,但不会捕获由它调用的程序的屏幕输出。
尝试在批处理名称前加上cmd /k
,例如:
cmd /k post_build.bat arg1 arg2 > out.txt
没有改变行为。
如何捕获程序的输出(没有重定向每个程序,因为它们有多个,它会使批处理文件混乱)?
更新:基本命令行如下所示:
post_build.bat arg1 arg2 > out.txt
尝试时,我尝试了以下变体:
post_build.bat arg1 arg2 > out.txt 2>&1
cmd /k post_build.bat arg1 arg2 > out.txt
cmd /k post_build.bat arg1 arg2 > out.txt 2>&1
批处理包含可执行程序的调用(不包括其他批处理文件)。这些程序根据arg*
参数进行一些处理。一些程序生成输出到终端,以及处理其他文件。基本上,假设批处理文件如下所示:
prog1 arg1
prog2 arg2 out2
copy out2 out3
echo Done processing files!
答案 0 :(得分:0)
你是否只尝试过:
post_build.bat arg1 arg2
作为post build命令?在我的情况下,似乎没有调用cmd
。