es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

En lote, ¿por qué “not” ignora el comando “si no” y ejecuta el siguiente código de cualquier manera?

echo Para comenzar, escriba start
echo Para ver opciones, escriba options
echo Para salir del juego, escriba quit
set /p input= Comando? 
if %input% == start ir a Start
if %input% == options ir a Options
if %input% == quit ir a Exit
else (
ir a Menu
)

Básicamente, lo que debería hacer es escribir una de esas opciones hará que se vaya a esa parte del código, y escribir algo que no esté especificado hará que se ejecute ese script nuevamente. Esto funciona según lo previsto, pero mi problema es cuando escribo “no blah” (sin comillas, donde blah podría ser cualquier cosa) se ejecuta el script a pesar de no haber una acción especificada para blah en el código.

¿Por qué?

Tags:  

Answer

  1. Avatar for davy.ai

    Esto probablemente se debe a que se está activando el comando else. El comando else es un capturador de cualquier entrada que no se ajuste a las declaraciones if. Esto significa que cualquier entrada que no coincida con las declaraciones if será enviada al comando else, que en este caso es el comando goto Menu.

Comments are closed.