Eu sei que geralmente colocar a entrada com "" é a coisa correta a se fazer
but it does not work in this case
if /i {%ANSWER%}=={help} (goto :FunctionList)
Quando %ANSWER%
é New User
, ele contém Space
e é tratado como duas sequências separadas pelo comando if
.
Solução
Coloque as expressões if
em "
s:
if /i "%ANSWER%"=="help" (goto :FunctionList)
if /i "%ANSWER%"=="?" (goto :FunctionList)
if /i "%ANSWER%"=="clear" (goto :clear)
if /i "%ANSWER%"=="yes" (goto :yes)
if /i "%ANSWER%"=="tutorial" (goto :tutorial)
if /i "%ANSWER%"=="New User" (goto :NewUser)
Delimitadores
Se a string que está sendo comparada por um comando IF
inclui delimitadores como Space
ou Comma
, então os delimitadores devem ter um caret ^
ou a string inteira deve ser "citada". / p>
This is so that the
IF
statement will treat the string as a single item and not as several separate strings.
Fonte if - Condicionalmente execute um comando.
Leitura Adicional
- Um índice A-Z da linha de comando do Windows CMD - Uma excelente referência para todas as coisas relacionadas à linha do Windows cmd.
- if - Realize condicionalmente um comando.