找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 26114|回复: 2

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

[复制链接]
发表于 2021-3-26 20:30:48 | 显示全部楼层 |阅读模式
我希望代码循环运行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
复制代码
发表于 2021-3-26 22:38:48 | 显示全部楼层
第2行setlocal...这里没必要使用变量延迟
if %vstart%+60 写法错误,if语句中数值变量不能直接运算。可改为:
set /a pnum=%vstart%+60
if %pnum% lss %vtime% (...
其它自己再检查。
发表于 2021-3-27 09:16:03 | 显示全部楼层
回复 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
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 13:24 , Processed in 0.014501 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表