中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [讨论]长时间进行相同计算出错
作者:
标题: [讨论]长时间进行相同计算出错 上一主题 | 下一主题
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『楼 主』:  [讨论]长时间进行相同计算出错

我早上写了这个批处理,后来发现执行时间过长后会出错,出错代码为
SET /A S=(((%TIME:~7,1%-S9)*2+1)%%2*(%TIME:~7,1%-S9)*10)/(((%TIME:~7,1%-S9)*2+1)%%2*(%TIME:~7,1%-S9)*10-1)
出错时的两个变量分别为
%time:~7,1%=9
%s9%=9
出错时的结果为-1,正常结果为0
出错时间最长为48分钟,最短只有8分钟就有


完整代码:
@ECHO OFF
SET TIMEON=%TIME:~0,-3%
:TIME1
SET /A S9=%TIME:~7,1%,S1+=S
SET /A H=S1/3600,M=S1%%3600/60,S=S1%%3600%%60
ECHO stopwatch %H%:%M%:%S% current:%TIME:~0,-3% timeon:%TIMEON% secs=%S1% %S9%
SET /A S1/(S1-100000) 2>nul||GOTO NEXT
:TIME0
SET /A S=(((%TIME:~7,1%-S9)*2+1)%%2*(%TIME:~7,1%-S9)*10)/(((%TIME:~7,1%-S9)*2+1)%%2*(%TIME:~7,1%-S9)*10-1)
GOTO TIME%S%


2007-1-20 08:36
查看资料  发短消息 网志   编辑帖子  回复  引用回复
scriptor
银牌会员




积分 1187
发帖 555
注册 2006-12-21
状态 离线
『第 2 楼』:  

那就分开写
不要偷懒啊

或者
换一个算法

2007-9-15 20:12
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: