中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何把所有txt文件中第10行第20个数字相加
<<   [1] [2]  >>   >
作者:
标题: 如何把所有txt文件中第10行第20个数字相加 上一主题 | 下一主题
lulala
初级用户





积分 44
发帖 17
注册 2006-9-5
状态 离线
『楼 主』:  如何把所有txt文件中第10行第20个数字相加

请问如何把一个目录下所有txt文件中第10行中第20个字符(肯定是阿拉伯数字)都相加起来算出总值显示在cmd窗口中 不知道可以吗谢谢 [ Last edited by namejm on 2007-2-5 at 10:34 AM ]


2006-9-10 00:04
查看资料  发短消息  网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 2 楼』:  

  把以下代码放到该目录下运行,同时请保证该目录下只存在参与运算的txt文件:
@echo off
set num=0
setlocal enabledelayedexpansion
for %%i in (*.txt) do (
    set file=%%i
    for /f "tokens=1* delims=:" %%j in ('findstr /n . !file!') do (
        set var=%%k
        if %%j equ 10 (set num_=!var:~19,1!)&& set /a num=!num!+!num_!
    )
)
echo   相加后的结果是: %num%
pause
[ Last edited by namejm on 2006-9-10 at 06:13 ]




尺有所短,寸有所长,学好CMD没商量。 考虑问题复杂化,解决问题简洁化。
2006-9-10 01:13
查看资料  发短消息  网志   编辑帖子  回复  引用回复
lulala
初级用户





积分 44
发帖 17
注册 2006-9-5
状态 离线
『第 3 楼』:  

谢谢你,我试运行了你的程序,原来我前面没写清楚,肯定是第10行,但第几个字符我不知道,因为好象这个数要跨过2个或3个字符. 我上传了几个txt文件,里边的数范围是十位数到千位数.谢谢帮我看看


附件 1: 新建文件夹.rar (2006-9-10 01:48, 743 bytes, 下载附件所需积分 1 点 ,下载次数: 17)
2006-9-10 01:48
查看资料  发短消息  网志   编辑帖子  回复  引用回复
9527
银牌会员

努力做坏人


积分 1185
发帖 438
注册 2006-8-28
来自 北京
状态 离线
『第 4 楼』:  

@echo off&setlocal for %%a in (*.txt) do (set c=)&call :ok "%%a" :ok for /f "skip=9 usebackq tokens=*" %%x in (%1) do ( if not defined c set "c=%%x" call set /a pp=pp+%%c:~19,1%% goto :eof ) echo %pp% 用另外一种方法完成!!! 不过不知道效果如何??? 呵呵..........




我今后在论坛的目标就是做个超级坏人!!!
2006-9-10 01:51
查看资料  发短消息  网志  OICQ (329429)  编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 5 楼』:  

  呵呵,pip的代码直接就取到第10行的内容,比我那个代码的效率要高得多,没注意到效率问题,是我那个代码的一大缺陷。




尺有所短,寸有所长,学好CMD没商量。 考虑问题复杂化,解决问题简洁化。
2006-9-10 02:03
查看资料  发短消息  网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 6 楼』:  

Originally posted by lulala at 2006-9-10 01:48: 谢谢你,我试运行了你的程序,原来我前面没写清楚,肯定是第10行,但第几个字符我不知道,因为好象这个数要跨过2个或3个字符. 我上传了几个txt文件, ...
  看了你的txt,发现数字是分列显示的,这个就更容易了,但是我不知道你要第几列的数字相加,请明示。




尺有所短,寸有所长,学好CMD没商量。 考虑问题复杂化,解决问题简洁化。
2006-9-10 02:07
查看资料  发短消息  网志   编辑帖子  回复  引用回复
9527
银牌会员

努力做坏人


积分 1185
发帖 438
注册 2006-8-28
来自 北京
状态 离线
『第 7 楼』:  

namejm 兄过谦了,兄在联盟的地位是不可动摇的,我对兄的佩服有如滔滔江水连绵不绝,一发不可收拾!!!




我今后在论坛的目标就是做个超级坏人!!!
2006-9-10 02:11
查看资料  发短消息  网志  OICQ (329429)  编辑帖子  回复  引用回复
lulala
初级用户





积分 44
发帖 17
注册 2006-9-5
状态 离线
『第 8 楼』:  

谢谢楼上几位兄台 我是想把都相加不管几列几列,如243+1246+21....


2006-9-10 05:49
查看资料  发短消息  网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 9 楼』:  

  我晕,不管3721,只要是数字都相加?这个超级BT啊。   总得指定哪几列的内容相加的嘛,要不然,你这个操作还有什么意义?




尺有所短,寸有所长,学好CMD没商量。 考虑问题复杂化,解决问题简洁化。
2006-9-10 06:15
查看资料  发短消息  网志   编辑帖子  回复  引用回复
lulala
初级用户





积分 44
发帖 17
注册 2006-9-5
状态 离线
『第 10 楼』:  

也不是不管几列,都相加,我的意思就是说:在我上传的那个压缩包里的txt文件,3种形式都有了,即十位数,百位数,千位数,一个txt文件中第10行有可能是十位数,也可能是百位数,也可能是千位数,但总有一个数,这个数的位置也基本固定,发现几个txt文件中的数的最后一位(个位数)总在一个固定字符位置 如 1.txt 第10行 123 2.txt 第10行 1234 3.txt 第10行 34 上面 个位数3,4,4的位置应该是对齐的 谢谢你的热心帮助!!!:P


2006-9-10 06:37
查看资料  发短消息  网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 11 楼』:  

  这个可以不管数字在哪个字符位上,你只要告诉我要把哪个列上的数相加就得了——你总不会连列的意思都闹不明白吧,因为我发现你一直没告诉我要处理哪一列上的,而总是在说某个字符位上的。并且你你举例的内容和上传的文本内容不吻合,我无法得知你的真实意思——你还是就你上传的文件内容举例吧。




尺有所短,寸有所长,学好CMD没商量。 考虑问题复杂化,解决问题简洁化。
2006-9-10 06:48
查看资料  发短消息  网志   编辑帖子  回复  引用回复
lulala
初级用户





积分 44
发帖 17
注册 2006-9-5
状态 离线
『第 12 楼』:  

字符位=列


2006-9-10 07:56
查看资料  发短消息  网志   编辑帖子  回复  引用回复
lulala
初级用户





积分 44
发帖 17
注册 2006-9-5
状态 离线
『第 13 楼』:  

你只要告诉我要把哪个列上的数相加就得了 ,数是随机的,有可能是十位数,百位数或千位数则么能确定要哪个列数相加呢?


2006-9-10 08:00
查看资料  发短消息  网志   编辑帖子  回复  引用回复
lulala
初级用户





积分 44
发帖 17
注册 2006-9-5
状态 离线
『第 14 楼』:  

并且你你举例的内容和上传的文本内容不吻合 形式是相同的,只是换个数字而已啊,目录下有这些txt文件,没规定一定要几个是百位数,几个是千位数,几个是个位数,但他们的位置即个位数的位置总在这个txt文件第10行的固定. 到底是固定第几列我也不好数,因为我不知道做程序的时候从哪开始算第一列.


2006-9-10 08:04
查看资料  发短消息  网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 15 楼』:  

Originally posted by lulala at 2006-9-10 07:56: 字符位=列
  我晕,有这样的等式吗?如果你这样认为的话,那我确实帮不了你。




尺有所短,寸有所长,学好CMD没商量。 考虑问题复杂化,解决问题简洁化。
2006-9-10 08:16
查看资料  发短消息  网志   编辑帖子  回复  引用回复
<<   [1] [2]  >>   >
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: