![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-10 06:57 |
共 47,811 主题排行 / 349,897 发帖 / 今日 2 篇 / 48,255 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 请教加减运算! |
| 可打印版本 1,875 / 20 |
| 第1楼 3391617 | 发表于 2008-10-25 16:02 |
| 初级用户 发帖 56 积分 116 | |
|
请教加减运算! 假设a.txt有如下内容:
13.611,2.636 19.853,5.102 23.998,5.282 28.310,4.296 37.505,3.145 ... ... 想实现:"下一行开头减上一行开头,下一行末尾减上一行末尾" 即得到结果6.242,2.466>>b.txt ... 依次类推计算至末尾。。。 最终b.txt结果为: 6.242,2.466 4.145,0.18 .... 请高手指点下如何能实现 研究好久也没弄出来 先谢过了~~ [ Last edited by 3391617 on 2008-10-25 at 16:08 ] |
|
| 第2楼 tireless | 发表于 2008-10-25 16:40 |
| 银牌会员 发帖 1,122 积分 2,025 | |
|
也就是两行两行计算?是这样吗:
a.txt中的第2行减第1行的结果>>b.txt a.txt中的第4行减第3行的结果>>b.txt |
|
| 第3楼 leonlau | 发表于 2008-10-25 16:43 |
| 初级用户 发帖 27 积分 39 | |
|
......
附件 截图.jpg (60.67 KiB) |
|
| 第4楼 3391617 | 发表于 2008-10-25 16:52 |
| 初级用户 发帖 56 积分 116 | |
|
2楼说的对,就是这个意思,“,”前后的数分别减上一行的!
第2行-第1行 第3行-第2行 第4行-第3行 ... [ Last edited by 3391617 on 2008-10-25 at 16:53 ] |
|
| 第5楼 youkaib | 发表于 2008-10-25 17:03 |
| 初级用户 发帖 22 积分 61 | |
|
呵呵,我试了几下。我先告诉你,批处理不能对小数进行计算。
分隔符不能用逗号。 [ Last edited by youkaib on 2008-10-25 at 17:06 ] |
|
| 第6楼 youkaib | 发表于 2008-10-25 17:14 |
| 初级用户 发帖 22 积分 61 | |
|
我给个思路。
@echo off setlocal enabledelayedexpansion for /l %%i in (1,1,20) do ( :::这里只是循环作用 call :b echo !sum! pause ) :b for /f %%a in (a.txt) do ( for /f "skip=1" %%b in (a.txt) do ( echo !! set /a sum=!sum2!-!sum1! ) ) goto :eof 这个是达不到你要求。 [ Last edited by youkaib on 2008-10-25 at 17:16 ] |
|
| 第7楼 3391617 | 发表于 2008-10-25 17:23 |
| 初级用户 发帖 56 积分 116 | |
|
我测试一下看看
|
|
| 第8楼 3391617 | 发表于 2008-10-25 17:46 |
| 初级用户 发帖 56 积分 116 | |
Originally posted by youkaib at 2008-10-25 05:14 PM: 提示:运算符不存在!!。。。 还有,这个没有把a.txt中“,”前后的数给分开运算啊 [ Last edited by 3391617 on 2008-10-25 at 17:48 ] |
|
| 第9楼 terse | 发表于 2008-10-25 18:04 |
| 银牌会员 发帖 946 积分 2,404 | |
| 第10楼 3391617 | 发表于 2008-10-25 18:16 |
| 初级用户 发帖 56 积分 116 | |
|
TO:9楼
如果后一行的数比前一行的小,结果不正确。。。 你的代码好复杂。。。偶太菜。。。看不懂。。。 |
|
| 第11楼 terse | 发表于 2008-10-25 18:40 |
| 银牌会员 发帖 946 积分 2,404 | |
Originally posted by 3391617 at 2008-10-25 18:16: 如果后一行的数比前一行的小 你想怎么处理 得负数吗?还是大-小 |
|
| 第12楼 3391617 | 发表于 2008-10-25 18:47 |
| 初级用户 发帖 56 积分 116 | |
|
TO:11楼
得负数! 请问我给a、b附值错在哪里?? 写了这两句: set a="sed '%n%q;d' 1.txt" set b="sed '%n%q;d' 2.txt" [ Last edited by 3391617 on 2008-10-25 at 18:54 ] |
|
| 第13楼 HAT | 发表于 2008-10-25 18:50 |
| 版主 发帖 5,017 积分 9,023 | |
|
Re 12楼 批处理不允许这样赋值
可以把sed放在for里面再给a或者b赋值 |
|
| 第14楼 3391617 | 发表于 2008-10-25 18:57 |
| 初级用户 发帖 56 积分 116 | |
|
ECHO结果也不能用SET赋值吗?
谢谢BZ,还是有点迷糊 能说详细点么? 我再研究研究 [ Last edited by 3391617 on 2008-10-25 at 19:02 ] |
|
| 第15楼 HAT | 发表于 2008-10-25 19:02 |
| 版主 发帖 5,017 积分 9,023 | |
|
Re 14楼 echo也不能直接给变量赋值
建议多看教程
|
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |