Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: MDd2 en 23 Marzo 2017, 17:09 pm



Título: [DUDA] Elegir al azar en batch
Publicado por: MDd2 en 23 Marzo 2017, 17:09 pm
Hola, me gustaría saber si en batch hay alguna manera de por ejemplo: se elija al azar (aleatoriamente) entre por ejemplo:
Código
  1. @echo off
  2. Elegir entre:
  3. echo Hola
  4. echo Buenos dias
  5. echo Ey que pasa!

Muchas gracias de antemano


Título: Re: [DUDA] Elegir al azar en batch
Publicado por: TheIllusionist en 23 Marzo 2017, 19:13 pm
Si, con el %random% pero no entiendo que quieres q se muestre al azar, hay solo se va a imprimir lo escrito
 :rolleyes:
q pases un buen día


Título: Re: [DUDA] Elegir al azar en batch
Publicado por: MDd2 en 23 Marzo 2017, 19:15 pm
Si, con el %random% pero no entiendo que quieres q se muestre al azar, hay solo se va a imprimir lo escrito
 :rolleyes:
q pases un buen día

Quiero que se muestre solo una de las 3 opciones, es decir que solo se ejecute uno de los 3 comandos al azar


Título: Re: [DUDA] Elegir al azar en batch
Publicado por: TheIllusionist en 25 Marzo 2017, 00:47 am
Quiero que se muestre solo una de las 3 opciones, es decir que solo se ejecute uno de los 3 comandos al azar
Haber hay no ahí ninguna opción, pero creo que mas o menos se lo que quieres realizar,
Código
  1. rem aqui estan tus opciones(en verdad esto es un menu, siempre se va a mostrar)
  2. echo opción1
  3. echo opcion2
  4. echo opcion3
  5. rem esto te dara un numero del 0 al 2
  6. numeroaleatorio = %random% %% 3
  7. if numeroaleatorio==0:
  8.       echo opcion1
  9. if numeroaleatorio==1:
  10.      echo opcion2
  11. if numeroaleatorio==2:
  12.      echo opcion3
  13.  

Ahora si solo quieres que se muestre una y que las demas no se vean, lo que debes poner es lo siguiente
Código
  1. numeroaleatorio = %random% %% 3
  2. if numeroaleatorio==0:
  3.       echo opcion1
  4. if numeroaleatorio==1:
  5.      echo opcion2
  6. if numeroaleatorio==2:
  7.      echo opcion3
  8.  
Y ya está, pero batch no es un lenguaje de verdad, hazme caso a mi me pasaba lo mismo hace nada XD


Título: Re: [DUDA] Elegir al azar en batch
Publicado por: Eleкtro en 25 Marzo 2017, 08:04 am
Arriba te han mostrado una solución basada en condicionales, pues otra opción según las necesidades de cada cual podría ser simular un array, aunque para hacer este tipo de cosas en Batch casi es preferible pegarse un tiro :xD...

Código
  1. @Echo Off & Setlocal EnableDelayedExpansion
  2.  
  3. Set    "array=Hola,Buenos_dias,Ey_que_pasa!"
  4. Set /A "arrayLength=3"
  5. Set /A "rand=%RANDOM% %%%arrayLength%"
  6.  
  7. Set /A "count=0"
  8. For %%# in ( %array% ) Do (
  9. if !count! EQU %rand% (
  10. Set "value=%%#"
  11. Set "value=!value:_= !"
  12. Echo !value!
  13.        Set /A "count=0"
  14. GoTo :Break
  15. )
  16. Set /A "count+=1"
  17. )
  18. :Break
  19.  
  20. Pause&Exit /B 0

'Saludos!