中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]如何处理屏幕回显信息
作者:
标题: [求助]如何处理屏幕回显信息 上一主题 | 下一主题
pjzhong
初级用户





积分 24
发帖 8
注册 2007-5-30
状态 离线
『楼 主』:  [求助]如何处理屏幕回显信息

工作上需要用批处理编译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,批处理能自动停止后面指令的执行?

2008-5-30 21:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 2 楼』:  没什么把握,试试吧:

注: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 ]



批处理之家新域名:www.bathome.net
2008-5-30 21:50
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
pjzhong
初级用户





积分 24
发帖 8
注册 2007-5-30
状态 离线
『第 3 楼』:  

在此,先谢谢zw19750516,同时指出其实我的文件名不是简单的a1,a2,……我只是为了叙述方便才这样写的,只要把n定为总的文件数应该没问题吧?另外,这三条批处理指令改怎么放到我的批处理中呢?它们与我的编译指令该是什么位置关系?

2008-5-31 19:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 4 楼』:  



  Quote:
Originally posted by pjzhong at 2008-5-31 19:28:
在此,先谢谢zw19750516,同时指出其实我的文件名不是简单的a1,a2,……我只是为了叙述方便才这样写的,只要把n定为总的文件数应该没问题吧?另外 ...

那请楼主贴出自己的批处理源码了。



批处理之家新域名:www.bathome.net
2008-6-1 01:11
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
pjzhong
初级用户





积分 24
发帖 8
注册 2007-5-30
状态 离线
『第 5 楼』:  

谢谢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文件中吗?

2008-6-1 14:03
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: