Board logo

标题: [文本处理] 如何用批处理计算出文本中列出的多行数字的平均值? [打印本页]

作者: kui198677    时间: 2011-3-20 09:07     标题: 如何用批处理计算出文本中列出的多行数字的平均值?

本帖最后由 pcl_test 于 2016-11-26 02:29 编辑

我有一个文本内容如下:1.txt
内容为:
6.54823
7.35468
6.12351
2.13214
如何用批处理把这些行的数值相加再除4也就是算出它的平均值,文本不一定是四行,也就是说文本生成的行不一定相同,不管有几行,只要运行批处理就自动算出里面的平均值,非常感情
作者: wc726842270    时间: 2011-3-20 09:30

本帖最后由 wc726842270 于 2011-3-20 09:37 编辑

仅针对此题,通用性并不强
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f %%i in (1.txt) do set a=%%i&&echo !a:.=! >>TEMP.txt
  3. for /f %%i in (temp.txt) do set /a n+=%%i
  4. set /a a=%n%/4,b=%n%%%4*25
  5. if %b% equ 0 set b=
  6. echo 平均数为%a:~0,-5%.%a:~-5%%b%
  7. del temp.txt
  8. pause
复制代码

作者: kui198677    时间: 2011-3-20 09:54

这个计算有错误哦?请帮忙改下,我反复换了好几组数运算出来有时不对,刚才我输入了这个数值
14.523
12
13.56
运行你的批处理结果和计算器里算出的结果不一样
作者: wc726842270    时间: 2011-3-20 10:17

P处理不支持小数运算,所以没有规律,不建议用P(准确来说应该是不识别小数点)
作者: kui198677    时间: 2011-3-20 10:23

嗯,还是很感谢,那能问你,可以把每一行输入到一个新的文本里嘛?每一行一个文本,文本名为文本所在的行数
作者: CrLf    时间: 2011-3-20 10:40

for /f "tokens=1* delims=:" %%a in ('findstr /n 1.txt') do echo>%%a.txt %%b




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2