标题: [其他] 批处理if...else...goto为何跳转失败? [打印本页]
作者: error1 时间: 2011-11-2 17:00 标题: 批处理if...else...goto为何跳转失败?
- @echo off
-
- set /p input=输入开启的版本(sp2 sp3 sp4):
- if "%input%"=="sp2" goto sp2 else (
- if "%input%"=="sp3" goto sp3 else(
- if "%input%"=="sp4" goto sp4 else goto other))
- pause
-
- :sp2
- echo sp2 OK
- pause
- exit
-
-
- :sp3
- echo sp3 ok
- pause
- exit
-
- :sp4
- echo sp4 ok
- pause
- exit
-
- :other
- echo other ok
- pause
- exit
复制代码
输入其它的没有跳转到other这里的输出,这是为什么?
作者: lvsehuaxue 时间: 2011-11-2 19:17
- @echo off
-
- set /p input=输入开启的版本(sp2 sp3 sp4):
- if "%input%"=="sp2" goto sp2
- if "%input%"=="sp3" goto sp3
- if "%input%"=="sp4" goto sp4
- echo other ok
- pause
- exit
-
- :sp2
- echo sp2 OK
- pause
- exit
-
-
- :sp3
- echo sp3 ok
- pause
- exit
-
- :sp4
- echo sp4 ok
- pause
复制代码
作者: weichenxiehou 时间: 2011-11-2 20:19
回复 1# error1
必须牢记if...else...的句型:if ... (...) else ...,就是说如果要接else,前面的括号是一定不能少的。
作者: error1 时间: 2011-11-3 11:24
lvsehuaxue 发表于 2011-11-2 19:17
这样输入其它的确实是可以得出other ok
但我要用goto的本意是,如果输入的是其它值,就跳到开始询问开启的版本号。
想知道为什么这里最后没有执行else语句。
作者: error1 时间: 2011-11-3 11:26
回复 error1
必须牢记if...else...的句型:if ... (...) else ...,就是说如果要接else,前面的括号是一 ...
weichenxiehou 发表于 2011-11-2 20:19
前面有带括号啊,难道是“()”位置不对?可以就上面的那段给出正解么?谢谢
作者: weichenxiehou 时间: 2011-11-3 12:59
我的意思是条件满足时要做的事情那部分需要加括号,也就是你那些goto…
作者: error1 时间: 2011-11-3 17:14
我的意思是条件满足时要做的事情那部分需要加括号,也就是你那些goto…
weichenxiehou 发表于 2011-11-3 12:59
- if "%input%"=="sp2" goto sp2
- if "%input%"=="sp3" goto sp3
- if "%input%"=="sp4" goto sp4
- goto other
复制代码
哦,我改成这样了。。。
作者: cjiabing 时间: 2011-11-3 23:48
最简单的就如楼上,否则就复杂了。- set /p input=输入开启的版本(sp2 sp3 sp4):
- if "%input%"=="sp2" (goto sp2) else (
- if "%input%"=="sp3" (goto sp3) else (
- if "%input%"=="sp4" (goto sp4) else goto other
- )
- )
- pause
- exit
复制代码
有两个基本问题:
第一是基本语法不对,在else前面的命令是要用括号的。
第二是if "%input%"=="sp3" goto sp3 else(最后面这个else和(粘到一起了,要分开。
另外,使用IF判断时,有时候单行的逐一判断是最简便的,而不必使用if …… else ……的模式。
作者: error1 时间: 2011-11-4 11:41
最简单的就如楼上,否则就复杂了。有两个基本问题:
第一是基本语法不对,在else前面的命令是要用括号的。 ...
cjiabing 发表于 2011-11-3 23:48
谢谢,记住了。。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |