中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-07 14:22
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 为什么x+=1后运算结果和x运算结果相同,第二次+=1才不同 查看 788 回复 4
楼 主 为什么x+=1后运算结果和x运算结果相同,第二次+=1才不同 发表于 2007-01-19 06:29 ·  中国 浙江 温州 电信
中级用户
★★
积分 458
发帖 196
注册 2006-10-05 12:04
19年会员
UID 64614
状态 离线
当变量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 ]
2 发表于 2007-01-19 07:42 ·  中国 浙江 温州 电信
中级用户
★★
积分 458
发帖 196
注册 2006-10-05 12:04
19年会员
UID 64614
状态 离线
大家帮帮忙啊,解决这个问题脚本就大功告成了
我研究一整天了
3 发表于 2007-01-19 09:44
中级用户
★★
DOS之日
积分 337
发帖 161
注册 2006-11-04 05:27
19年会员
UID 69523
性别 男
状态 离线
试试这样可以不,把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
4 发表于 2008-02-14 16:52 ·  中国 广东 东莞 电信
初级用户
★★
积分 201
发帖 92
注册 2005-12-28 17:44
20年会员
UID 48072
状态 离线
set t=time /t

t%
15:41

set /a %t%+=1
以零为除数的错误。
5 发表于 2008-02-14 17:09 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
2007-1-19 06:29
。。。这帖子。。都掘出来了……
论坛跳转: