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の のために直接行くからです。単にあなたの秒が評価されることはありません。elseifif

最初のものを単純に削除することをお勧めします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 に答える