[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]批处理怎样把文本中每一行指定列的数字分别相加并输出到原文档?

本帖最后由 pcl_test 于 2016-11-16 19:22 编辑

一个txt文件有多行,需要 每行的第32 34 36 38 40  42 个数字分别相加(如 第一行的第31个数字 与第2行、第三行...的第31个数字相加),并把结果输出到文档第一行。
求哪位大侠帮忙,万分感谢!

每行内容都是这样的  192.168.1.11 2015/11/23 21:34  1 2 1 7 0 4
字符是一样多的

  1. @echo off
  2. for /f "tokens=4-9" %%i in ('type "1.txt"') do (
  3.     set /a a+=%%i
  4.     set /a b+=%%j
  5.     set /a c+=%%k
  6.     set /a d+=%%l
  7.     set /a e+=%%m
  8.     set /a f+=%%n
  9. )
  10. > 2.txt echo %a% %b% %c% %d% %e% %f%
  11. >> 2.txt type 1.txt
  12. move /y 2.txt 1.txt
复制代码
1

评分人数

TOP

  1. @echo off
  2. gawk "{a+=$4;b+=$5;c+=$6;d+=$7;e+=$8;f+=$9}END{print a,b,c,d,e,f}" 1.txt > 2.txt
  3. type 1.txt >> 2.txt
  4. move /y 2.txt 1.txt
复制代码

TOP

文件按列切分后,可以看成一个二维数组~
下载安装python3 https://www.python.org/downloads/ 代码存为xx.py 双击运行或IDLE打开F5运行

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in (a.txt) do (
  3.     set str=%%i
  4.     set "str=!str:~-12!"
  5.     set "str=!str: =!"
  6.     for /l %%j in (0,1,5) do set /a "$%%j+=!str:~%%j,1!"
  7. )
  8. for /l %%i in (0,1,5) do set "s=!s! !$%%i!"
  9. >b.txt echo!s!
  10. pause
复制代码
1

评分人数

TOP

回复 2# 依山居


    已修改 多谢关注!

TOP

传文件上网盘。
下载安装python3 https://www.python.org/downloads/ 代码存为xx.py 双击运行或IDLE打开F5运行

TOP

文件类型不知道,数据长度不知道,不是打飞机太难,是飞机都不见怎么打?
下载安装python3 https://www.python.org/downloads/ 代码存为xx.py 双击运行或IDLE打开F5运行

TOP

返回列表