[Batch] Verificar presencia de caracteres en una variable

Resuelto
Hola,

Me encuentro ante un problema porque me gustaría añadir una opción tal que cuando se introduzca cierta cadena de caracteres entonces ir a una etiqueta. Es difícil de explicar, pero este es el principio.
De hecho, si la persona pone en la variable choix: 1 /random entonces después de realizar lo que hay en la etiqueta 1, ir a la etiqueta Random y realizar las acciones. O sea, tendríamos: %choix%=1 /random

@echo off

chcp 28591 > nul

:menu
cls

set /p choix="Quelque chose à dire ? "

if %choix%==0 goto :0
if %choix%==1 goto :1
if %choix%==end goto :end

goto :menu

:0
echo Tu as dit 0
pause > nul
goto :end

:1
echo Tu as dit 1
pause > nul
goto :end

:Random
cls
echo %RANDOM%
pause

:end
echo C'est la fin
pause
exit

1 respuesta

  1. Buenas noches,

    Es muy simple, no solo IF permite hacer una condición, también están && y || :

    @echo off

    chcp 28591 > nul

    :menu
    cls

    set /p choix="¿Alguna cosa que decir? "

    echo %choix% | find "0" && goto :0
    echo %choix% | find "1" && goto :1
    if %choix%==end goto :end

    goto :menu

    :0
    echo Dijiste 0
    echo %choix% | find "random" && goto :Random
    pause > nul
    goto :end

    :1
    echo Dijiste 1
    echo %choix% | find "random" && goto :Random
    pause > nul
    goto :end

    :Random
    cls
    echo %RANDOM%
    pause

    :end
    echo Es el final
    pause
    exit


    --

    “La inteligencia artificial se define como la contrario de la estupidez natural.”
    1
    1. Buenas noches,

      Le agradezco, es exactamente lo que buscaba, pero es extraño, no lo encontré en ningún lugar.

      Me gustaría saber si sería posible que no me devolviera lo que se encuentra en la variable.
      (Me gustaría simplemente que verifique que en la variable hay "random" pero sin escribir en la consola lo que contiene la variable %choix%)

      Espero haber sido lo suficientemente claro.
      0
    2. @EkiamEs posible redirigiendo la salida a nul, como esto:

      @echo off

      chcp 28591 > nul

      :menu
      cls

      set /p choix="¿Algo que decir? "

      echo %choix% | find "0" >nul && goto :0
      echo %choix% | find "1" >nul && goto :1
      if %choix%==end goto :end

      goto :menu

      :0
      echo Dijiste 0
      echo %choix% | find "random" >nul && goto :Random
      pause > nul
      goto :end

      :1
      echo Dijiste 1
      echo %choix% | find "random" >nul && goto :Random
      pause > nul
      goto :end

      :Random
      cls
      echo %RANDOM%
      pause

      :end
      echo Es el final
      pause
      exit
      0
    3. Buenas noches,

      ¡Muchas gracias, es exactamente lo que quería!

      ¡Buenas noches!
      0
    4. @EkiamGracias, que tengas una buena noche también.
      0