[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理循环代码出现的问题

我希望代码循环运行23次退出,实际情况是代码运行了3次后退出。
哪里写错了啊?
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set vtime=671
  4. set/a vstart=0
  5. :loop
  6. if %vstart%+60 lss %vtime% (
  7. echo %vstart%
  8. echo %vtime%
  9. pause
  10. set/a vstart+=30
  11. ) else (
  12. goto next_loop
  13. )
  14. goto loop
  15. :next_loop
  16. echo "next_loop"
  17. pause
复制代码

第2行setlocal...这里没必要使用变量延迟
if %vstart%+60 写法错误,if语句中数值变量不能直接运算。可改为:
set /a pnum=%vstart%+60
if %pnum% lss %vtime% (...
其它自己再检查。

TOP

回复 1# netdzb
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set vtime=671
  4. set vstart=0
  5. :loop
  6. set /a x=vstart+60
  7. if !x! lss %vtime% (
  8.     echo !vstart! --- !x! --- %vtime%
  9.     set /a vstart+=30
  10. ) else (
  11.     goto :next_loop
  12. )
  13. goto :loop
  14. :next_loop
  15. echo "next_loop"
  16. pause
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表