[Batch] Verificar presencia de caracteres en una variable

Resuelto
Ekiam Mensajes publicados 43 Fecha de registro   Estado Miembro Última intervención   -  
barnabe0057 Mensajes publicados 14329 Fecha de registro   Estado Colaborador Última intervención   -
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. barnabe0057 Mensajes publicados 14329 Fecha de registro   Estado Colaborador Última intervención   4 930
     
    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. Ekiam Mensajes publicados 43 Fecha de registro   Estado Miembro Última intervención  
       
      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
      1. barnabe0057 Mensajes publicados 14329 Fecha de registro   Estado Colaborador Última intervención   4 930 > Ekiam Mensajes publicados 43 Fecha de registro   Estado Miembro Última intervención  
         
        Es 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
    2. Ekiam Mensajes publicados 43 Fecha de registro   Estado Miembro Última intervención  
       
      Buenas noches,

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

      ¡Buenas noches!
      0
      1. barnabe0057 Mensajes publicados 14329 Fecha de registro   Estado Colaborador Última intervención   4 930 > Ekiam Mensajes publicados 43 Fecha de registro   Estado Miembro Última intervención  
         
        Gracias, que tengas una buena noche también.
        0