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

可以用for循环来解决
  1. @echo off&setlocal enabledelayedexpansion
  2. for /l %%a in (1 1 6) do (
  3.    if not defined right set /p input=input
  4.    if "!input!"=="right" set right=yes
  5. )
  6. if not defined right exit
  7. echo right
  8. pause
复制代码
也可以用goto来解决
  1. @echo off&setlocal enabledelayedexpansion
  2. :again
  3. set /p input=input
  4. set /a n+=1
  5. if "!input!" neq "right" (
  6.    if %n% lss 6 goto again else exit
  7. )
  8. echo right
  9. pause
复制代码

TOP

8# common


变量延迟的意义是在语块中也能很方便地即时地动态读取变量值
  1. @echo off
  2. set test=test
  3. echo test=%test%     语块外
  4. (
  5.    set test=低调路过
  6.    echo test=%test%      语块中,不使用变量延迟
  7.   setlocal enabledelayedexpansion
  8.    echo test=!test!      语块中,使用变量延迟
  9. )
  10. echo test=%test%     实际值
  11. pause
复制代码
当然还有几种办法即时不开启变量延迟也能实现同样的效果,但是代价都太大

TOP

返回列表