批处理延迟变量问题

@echooffseta=1setb=1:toset/ab+=1echo%b%if%b%lss%a%*50gototoset/aa+=1echo%a%if%a%lss10... @echo off
set a=1
set b=1
:to
set /a b+=1
echo %b%
if %b% lss %a%*50 goto to
set /a a+=1
echo %a%
if %a% lss 10 goto to
pause
变量b每递增50个,变量a就加1,怎么样才能达到预期目标.?
展开
 我来答
yyykkkyyyy
2014-12-17 · TA获得超过3136个赞
知道大有可为答主
回答量:2691
采纳率:40%
帮助的人:3304万
展开全部
主要是不支持if 表达式中附加计算,所以要再借助一变量如:
:to
set/a b+=1,c=a*50
echo %b%
if %b% lss %c% goto :to
附注:看标题还以为是另一问题呢,另一网友答的代码虽无误,却是没必要去注意"延迟"问题
这种goto 循环可以用for /L代替,此时可能有变量延迟问题---在复合句中对于变量扩展如%a%不能反映此复合句内所作的改变会解释成整个复合句之前的值
追问
谢谢,大高手~
就得清闲1
2014-12-17 · 超过32用户采纳过TA的回答
知道答主
回答量:79
采纳率:66%
帮助的人:40.9万
展开全部
@echo off
setlocal enabledelayedexpansion
set a=1
set b=1
:to
set /a b+=1
echo b=!b!
set /a t=!a!*50
if !b! lss !t! goto to
set /a a+=1
echo a=!a!
if !a! lss 10 goto to
pause
追问
真是感谢呢,帮了大忙了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式