我无法解决这个问题:
if /i {%ANSWER%}=={yes} (goto :yes) ELSE (goto :invalid)
if /i {%ANSWER%}=={no} (goto :no) ELSE (goto :invalid)
if /i {%ANSWER%}=={no} (goto :no) ELSE (goto :invalid)
不会工作,只有一个是肯定会有替代吗?我也以类似的方式尝试if NOT
语句,它们似乎只是相互取消(当然)。
答案 0 :(得分:2)
因为第一个invalid
语句中的else
,它会直接转到if
。只是你的第二个if
永远不会被评估。
我建议您只删除第一个else
:
if /i {%ANSWER%}=={yes} (goto :yes)
if /i {%ANSWER%}=={no} (goto :no) ELSE (goto :invalid)
请注意,这相当于:
IF /i {%ANSWER%} EQU {yes} GOTO yes
IF /i {%ANSWER%} EQU {no} GOTO no
ECHO Ooops, invalid input.
GOTO :EOF
:yes
ECHO You said YES!
GOTO :EOF
:no
ECHO You said NO!
GOTO :EOF