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

[其他] 批处理goto命令求解

  1. @echo off
  2. :c
  3. echo                  1、aaa
  4. echo                  2、bbb
  5. echo                 请键入相应序号:
  6. set /p input=
  7. if %input%==1 goto a
  8. if %input%==2 goto b
  9. cls
  10. goto c
  11. :a
  12. echo aaa
  13. pause
  14. cls
  15. goto c
  16. :b
  17. echo bbb
  18. pause
  19. cls
  20. goto c
复制代码
刚学批处理,这个就是我想设计的一个能选择的批处理,我输入1,就运行a下面的命令,输入2,就运行b下面的命令。运行完回到选择界面。如果输其他任何,包括什么都不输直接回车,都会回到选择界面。这个如果我一次运行时就输入了,不管什么东西,貌似到达我要求了。但是我一运行,就直接回车的话会提示:这个时候不该有goto,然后命令框就关闭了。
请大大们帮忙看看哪里有问题?

变量没清空
如无特别说明,代码测试环境均为 XP SP3

TOP

呃,你昨天问的GOTO问题中就已经给出答案了,认真点看看
初学BAT,非专业。代码不适当之处还望前辈们多多指点。在此表示感谢!

TOP

疑问,goto命令

  1. @echo off
  2. :b
  3. cls
  4. echo.   1、aaa
  5. set /p aa=
  6. if "%aa%"=="1" goto a
  7. if not "%aa%"=="1" goto b
  8. :a
  9. cls
  10. echo. aaa
  11. pause >nul
  12. goto b
复制代码
选择1输出aaa后回到b的输入界面,这时直接回车不是应该仍然回到b吗?为什么会默认为上次的输入结果,又输出aaa

TOP

我知道了,原来要加个双引号,谢谢

TOP

  1. echo                 请键入相应序号:
  2. set "input="
  3. set /p input=
  4. if "%input%"=="1" goto a
  5. if "%input%"=="2" goto b
复制代码
初学BAT,非专业。代码不适当之处还望前辈们多多指点。在此表示感谢!

TOP

返回列表