中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-07-03 02:42
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]如何处理屏幕回显信息 查看 991 回复 4
楼 主 [求助]如何处理屏幕回显信息 发表于 2008-05-30 21:28 ·  中国 北京 联通
初级用户
积分 24
发帖 8
注册 2007-05-30 17:48
19年会员
UID 89782
性别 男
状态 离线
工作上需要用批处理编译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,批处理能自动停止后面指令的执行?
2 没什么把握,试试吧: 发表于 2008-05-30 21:50 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
注: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
3 发表于 2008-05-31 19:28 ·  中国 北京 昌平区 联通
初级用户
积分 24
发帖 8
注册 2007-05-30 17:48
19年会员
UID 89782
性别 男
状态 离线
在此,先谢谢zw19750516,同时指出其实我的文件名不是简单的a1,a2,……我只是为了叙述方便才这样写的,只要把n定为总的文件数应该没问题吧?另外,这三条批处理指令改怎么放到我的批处理中呢?它们与我的编译指令该是什么位置关系?
4 发表于 2008-06-01 01:11 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
Originally posted by pjzhong at 2008-5-31 19:28:
在此,先谢谢zw19750516,同时指出其实我的文件名不是简单的a1,a2,……我只是为了叙述方便才这样写的,只要把n定为总的文件数应该没问题吧?另外 ...

那请楼主贴出自己的批处理源码了。
批处理之家新域名:www.bathome.net
5 发表于 2008-06-01 14:03 ·  中国 北京 联通
初级用户
积分 24
发帖 8
注册 2007-05-30 17:48
19年会员
UID 89782
性别 男
状态 离线
谢谢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文件中吗?
论坛跳转: