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

[原创] [批处理命令一日一教学](5)流程跳转:goto

[复制链接]
发表于 2010-4-8 10:33:13 | 显示全部楼层
@echo  off
set /p =在C盘或者D盘建立新文件夹:
set /p input=另类谢谢老师请按1或请按2:
if "%input%"=="1" cd c:\
if "%input%"=="2" cd /d d:\
if "%input%"=="1" md\谢谢\老师\教程
if "%input%"=="2" md\谢谢\老师\教程
if "%input%"=="1" echo 已经谢谢好老师了
if "%input%"=="2" echo 已经谢谢好老师了
pause
发表于 2010-4-27 10:49:06 | 显示全部楼层

关于GOTO标签太多是时候怎么判断

仔细想了一下如果GOTO标记太多的情况下我们输入错误;怎样去做判断然后弹出提示您输入的标签不存在请核对后在输入
发表于 2010-6-22 17:13:48 | 显示全部楼层
前面的例子,若是输入的不是A也不是B,程序还是会执行标签A和B.
发表于 2010-8-8 22:32:39 | 显示全部楼层
goto :eof 是跳转到最后语句的话
有没有命令可以转到开始
比如输入A或B或C
:C标签内容要跳转到开始的命令
怎么完成 用什么命令呢?
发表于 2011-1-18 18:24:56 | 显示全部楼层
嗯,终于有个能看懂的了,谢谢楼主
发表于 2011-1-25 13:08:34 | 显示全部楼层
4、若有同名的标签段,将执行位于最顶层的标签段,其后的标签段是否得到执行,将视具体的情况加以处理。
  1. @echo off
  2. if 1==1 goto hello
  3. exit
  4. :hello
  5. echo hello1
  6. pause
  7. exit
  8. :hello
  9. echo hello2
  10. pause
  11. exit
复制代码
结果只显示了hello1,说明第二个hello标签没有执行。
发表于 2011-5-26 17:02:08 | 显示全部楼层
理解了,为什么当时自己在写一个BAT文件时会遇到总是显示全部信息了,没有加PAUSE    EXIT
新手就是新手啊,呵呵
发表于 2011-8-28 03:18:25 | 显示全部楼层
namejm 真辛苦,又在写代码,哎
发表于 2011-10-7 21:10:44 | 显示全部楼层
本帖最后由 cjiabing 于 2011-10-7 21:21 编辑

回复 37# hiyaya1212


    理解错误:
@echo off
这个是不显示回显的。
pause
这个是暂停
exit
这个是退出
自己去查查说明和英文。
另外,如何判断没有的标签,或者跳转错误:

  1. @echo off
  2. :start
  3. cls
  4. echo Yes
  5. echo No
  6. set /p var=输入以上:
  7. if %var%==Yes goto Y
  8. if %var%==No goto Y
  9. echo 输入错误,返回重试!
  10. pause
  11. goto start
  12. :Y
  13. echo 回答正确
  14. pause
  15. exit
  16. :N
  17. echo 回答错误
  18. pause
  19. exit
复制代码

输入标签是不正确的说法,因为批处理运行中,输入的是命令和字符,标签是代码,不必输入。
如果你真的想看你输入的标签是否存在,可以这样

  1. @echo off
  2. set /p str=输入标签查询,如【:start】:
  3. findstr /i /b "%str%" %0&&echo,&echo 查询成功!
  4. pause
复制代码

有必要的话可以添加参数  /x
发表于 2011-10-12 17:44:10 | 显示全部楼层
我想知道在FOR循环里加入GOTO语句跳出来执行一个标签,然后它还会不会再跑回去?
如果跳回去,是继续运行当次循环下的其它语句还是不再运行当次循环的语句而运行下一轮循环?
发表于 2011-11-14 18:15:57 | 显示全部楼层
如果输入的字母既不是A也不是B,而是其它字母时如何推出
发表于 2012-4-25 22:36:00 | 显示全部楼层
上一篇明明是if嘛,楼主。
http://www.bathome.net/thread-2530-1-1.html
发表于 2012-4-26 22:51:27 | 显示全部楼层
回复 41# Fantasys


    GOTO 只跳出去,绝不回头,是所谓浪子游侠。
    CALL 跳出去了,还跳回来,是所谓已婚人士。跳回来用goto :eof,这个是它老婆。并且,CALL动作慢些,但可以调用参数。
    比较:


  1. @echo off
  2. for /l %%a in (1,1,10) do goto end
  3. pause&cls

  4. for /l %%a in (1,1,10) do call :end 你知道我在等你妈妈?
  5. pause&exit

  6. :end
  7. echo;OVER %1
  8. pause
  9. goto :eof
复制代码
发表于 2012-5-21 17:13:18 | 显示全部楼层
这是越来越深入了。。
发表于 2013-4-29 16:43:57 | 显示全部楼层
显示input不是命令···
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 06:27 , Processed in 0.020679 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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