标题: [求助]如何处理屏幕回显信息
[打印本页]
作者: pjzhong
时间: 2008-5-30 21:28
标题: [求助]如何处理屏幕回显信息
工作上需要用批处理编译C程序,指令大致如下:
armcc a1.c
armcc a2.c
armcc a3.c
……
每一行指令执行时,后面会有一大堆警告信息,并在最后一行显示警告信息数目,如下:
……
"..\a1.c", line 11989: Warning: C2870W: variable 'e' declared but not used
"..\a1.c", line 11989: Warning: C2870W: variable 'd' declared but not used
"..\a1.c", line 12597: Warning: C2207W: inventing 'extern int Sxad();'
..\a1.c: 23 warnings, 0 errors, 0 serious errors
……
问题:
1.每条指令能否不显示警告内容,但显示共有多少警告,即只显示最后一行?
2.如何将各条指令的警告数累加起来,并在所有指令执行完成后显示总的警告数?
3.某条指令执行后,如果error不为0,批处理能自动停止后面指令的执行?
作者: bat-zw
时间: 2008-5-30 21:50
标题: 没什么把握,试试吧:
注:n为要运行的最后一条指令的数字,如最后一个为armmcc a10.c则n为10。
第一问:
@echo off
for /l %%i in (1,1,n) do call :lp %%i
pause>nul&goto :eof
:lp
armcc a%1.c>temp.txt
for /f "delims=" %%i in (temp.txt) do set str=%%i
echo %str%&del /q temp.txt
第二问:
@echo off
for /l %%i in (1,1,n) do call :lp %%i
echo the number for wrong is %num%
pause>nul&goto :eof
:lp
armcc a%1.c>temp.txt
for /f "tokens=2 delims= " %%i in (temp.txt) do set str=%%i
set /a num+=%str%&del /q temp.txt
第三问:
@echo off
for /l %%i in (1,1,n) do armcc a%%i.c>nul|findstr /c:"0 errors"||goto :eof
[
Last edited by zw19750516 on 2008-5-30 at 09:53 PM ]
作者: pjzhong
时间: 2008-5-31 19:28
在此,先谢谢zw19750516,同时指出其实我的文件名不是简单的a1,a2,……我只是为了叙述方便才这样写的,只要把n定为总的文件数应该没问题吧?另外,这三条批处理指令改怎么放到我的批处理中呢?它们与我的编译指令该是什么位置关系?
作者: bat-zw
时间: 2008-6-1 01:11
Quote: |
Originally posted by pjzhong at 2008-5-31 19:28:
在此,先谢谢zw19750516,同时指出其实我的文件名不是简单的a1,a2,……我只是为了叙述方便才这样写的,只要把n定为总的文件数应该没问题吧?另外 ... |
|
那请楼主贴出自己的批处理源码了。
作者: pjzhong
时间: 2008-6-1 14:03
谢谢zw19750516的指导!
我的源码很简单,就是:
@echo off
armcc -c -g sam.c
armcc -c -g sammain.c
armcc -c -g samkey.c
armcc -c -g samdisk.c
……
armcc -c -g usb.c
我的批处理就是这样的,中间约有100多个C文件,我就不全写了。
领导希望能统计总的warning数目。
请问zw19750516,我该怎么把你写的代码加进去呢?
另外,忽然想到一个问题,这么多指令产生的屏幕信息,能输出到同一个TXT文件中吗?