写个批处理,读取某个文件的N行,第N个字符。

写个批处理,读取某个文件的N行,第N个字符。例如:读取C:\log.txtlog.txt的内容为abcdefg123ssssabcdefg456ssssabcdefg78... 写个批处理,读取某个文件的N行,第N个字符。
例如: 读取C:\ log.txt
log.txt的内容为
abcd efg 123 ssss
abcd efg 456ssss
abcd efg 789ssss

我只获取里面的 123 456 789 然后这3个数字相加,并求平均值,并以log2.txt保存在C盘。数字不定长度,可能是1000000,也可能是10000,
数字之后的都为
123 sss
234 sss
456 sss
都是空格加SSS
请教高手解决问题。
展开
 我来答
开心且清馨丶君子兰
2011-12-07 · TA获得超过791个赞
知道小有建树答主
回答量:569
采纳率:100%
帮助的人:426万
展开全部
@echo off
setlocal ENABLEDELAYEDEXPANSION
set /a counts=0
set /a t=0
set /a ave=0
for /f "tokens=3" %%i in (c:\log.txt) do (
set /a t=!t!+%%i
set /a counts=!counts!+1
set /a ave=!t!/!counts!
echo 总和=!t! 行数=!counts! 平均数=!ave!
)
echo !ave!>>c:\log2.txt
pause

以上代码实计读取并显示log.txt中各行的第三列数字之累计和,行数,累计平均数,并将最后的平均数追加到log2.txt
缺点:对数字小数点精度未测试.楼主可亲测
最后的平均数是取的整数,没有保留小数(如需要,还可以改进)
更多追问追答
追问
我要有小数点的。
就是 11.11
22.22
33.33
追答
@echo off
setlocal ENABLEDELAYEDEXPANSION
set /a counts=0
set /a t=0
set /a ave=0
set /a tail=0
for /f "tokens=3" %%i in (c:\log.txt) do (
set /a t=!t!+%%i
set /a counts=!counts!+1
set /a ave=!t!/!counts!
set /a tail=!t!%!counts!
echo 总和=!t! 次数=!counts! 平均数=!ave!.!tail:~0,2!
)
echo !ave!.!tail:~0,2!>>c:\log2.txt
pause

以上代码实现平均值保留两位小数
ffihy
2011-12-06 · TA获得超过133个赞
知道答主
回答量:118
采纳率:0%
帮助的人:83.3万
展开全部
@echo off
set /a sum=0
for /f "tokens=3" %%i in (C:\log.txt) do set /a sum=%sum%+%%i
echo %sum% >C:\log2.txt
echo 处理完成
pause
追问
行数不一定,读取里面所有的行,
是读取 第 40个(40字符就为数字,数字有小数点) 到 sss之前的数字相加
并且要求平均值哦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式