1

我无法让它工作:

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也以类似的方式尝试过声明,它似乎只是相互抵消(当然)。

4

1 回答 1

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
于 2013-10-29T09:10:16.903 回答