中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 为什么x+=1后运算结果和x运算结果相同,第二次+=1才不同
作者:
标题: 为什么x+=1后运算结果和x运算结果相同,第二次+=1才不同 上一主题 | 下一主题
zerocq
中级用户




积分 458
发帖 196
注册 2006-10-5
状态 离线
『楼 主』:  为什么x+=1后运算结果和x运算结果相同,第二次+=1才不同

当变量1满足要求后变量2递增1
可是遇到一点小问题,搞不懂
下边我取出这部分有关的代码,大家帮忙看下

代码中变量y达到要求所以变量x累加
但第一次加1后结果a和原来的a相同的
第二次x累加后结果a才是递增的
怎么样才可以让第一次累加结果也和原始的不同
@echo off
cls
set /a z=1
set /a x=2
set /a y=3
call :计算 %x% %y%
goto :eof

:计算
set /a a=(240+%1*24)*1^<^<(%z%-1)
echo a=%a%

:main
set /a y+=100
if %y% GEQ 1000 (
echo ..........
set /a x+=1    <---------这里x累加1
set /a y=0
call :计算 %x% 0
)
goto :main

[ Last edited by namejm on 2007-1-18 at 09:34 PM ]

2007-1-19 06:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zerocq
中级用户




积分 458
发帖 196
注册 2006-10-5
状态 离线
『第 2 楼』:  

大家帮帮忙啊,解决这个问题脚本就大功告成了
我研究一整天了

2007-1-19 07:42
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hxuan999
中级用户

DOS之日


积分 337
发帖 161
注册 2006-11-4
状态 离线
『第 3 楼』:  

试试这样可以不,把call :计算 %x% 0改成call :计算 %%x%% 0
@echo off
cls
set /a z=1
set /a x=2
set /a y=3
call :计算 %x% %y%
goto :eof

:计算
set /a a=(240+%1*24)*1^<^<(%z%-1)
echo a=%a%

:main
set /a y+=100
if %y% GEQ 1000 (
echo ..........
set /a x+=1
set /a y=0
call :计算 %%x%% 0
)
goto :main




for /f %%h in (`echo hxuan`) do for /f %%x in (`echo hxuan`) do if %%h==%%x nul
2007-1-19 09:44
查看资料  发送邮件  发短消息 网志  OICQ (33899867)  编辑帖子  回复  引用回复
secowu
初级用户





积分 201
发帖 92
注册 2005-12-28
状态 离线
『第 4 楼』:  

set t=time /t

t%
15:41

set /a %t%+=1
以零为除数的错误。

2008-2-14 16:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 5 楼』:  

2007-1-19 06:29
。。。这帖子。。都掘出来了……

2008-2-14 17:09
查看资料  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: