Board logo

标题: [其他] 批处理怎样计算列相加的结果? [打印本页]

作者: wbisiviv    时间: 2011-1-4 18:57     标题: 批处理怎样计算列相加的结果?

比如1.txt文本内容:
1  2  3  4  5
6  7  8  9  10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
26 27 28 29 30
想输出
第一列第1个和第3个相加
第一列第2个和第4个相加
第一列第3个和第5个相加
第一列第4个和第6个相加
到2.txt:如
12
22
32
42
要怎么写,请教一下朋友们,谢谢了
列数很长,不只计算4组数,
本人只想到是将第1列输出2列,在用行相加,就是不想多出来的后2行不运算
1    11
6     16
11   21
16   26
21
26
要是用行来相加,不想计算多出的后面2行
谢谢各位帮小弟一个忙

[ 本帖最后由 wbisiviv 于 2011-1-4 20:46 编辑 ]
作者: 随风    时间: 2011-1-4 19:34

文本总行数必须是双数,否则会丢失最后几行。
第二个问题的“在用行相加“是什么意思?
:
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f %%i in (a.txt) do (
  3.    set /a n+=1
  4.    set d=!d! %%i
  5.    if !n! equ 4 (
  6.       for /f "tokens=1-4" %%a in ("!d!") do (
  7.          set /a x=%%a+%%c,s=%%b+%%d,n=2
  8.          echo %%a+%%c=!x!
  9.          echo %%b+%%d=!s!
  10.          set d=%%c %%d
  11.       )
  12.    )
  13. )
  14. pause
复制代码

作者: Batcher    时间: 2011-1-4 20:35

如果文本总行数是奇数,楼主希望如何处理?
作者: wbisiviv    时间: 2011-1-4 20:38     标题: 还是不行

要是列数很长,不是4行,把4变成N,怎么写,得出的结果并输出到2.txt里
作者: 随风    时间: 2011-1-4 21:56     标题: 回复 4楼 的帖子

还是不行?
你测试过吗?




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