Test Foro de elhacker.net SMF 2.1

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 (dos) [Seleccionar]
@echo off
Elegir entre:
echo Hola
echo Buenos dias
echo Ey que pasa!
pause


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
Cita de: CommandPoison 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

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
Cita de: MDd2 en 23 Marzo 2017, 19:15 PM
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 (dos) [Seleccionar]

rem aqui estan tus opciones(en verdad esto es un menu, siempre se va a mostrar)
echo opción1
echo opcion2
echo opcion3
rem esto te dara un numero del 0 al 2
numeroaleatorio = %random% %% 3
if numeroaleatorio==0:
       echo opcion1
if numeroaleatorio==1:
      echo opcion2
if numeroaleatorio==2:
      echo opcion3


Ahora si solo quieres que se muestre una y que las demas no se vean, lo que debes poner es lo siguiente
Código (dos) [Seleccionar]

numeroaleatorio = %random% %% 3
if numeroaleatorio==0:
       echo opcion1
if numeroaleatorio==1:
      echo opcion2
if numeroaleatorio==2:
      echo opcion3

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 (dos) [Seleccionar]
@Echo Off & Setlocal EnableDelayedExpansion

Set    "array=Hola,Buenos_dias,Ey_que_pasa!"
Set /A "arrayLength=3"
Set /A "rand=%RANDOM% %%%arrayLength%"

Set /A "count=0"
For %%# in ( %array% ) Do (
if !count! EQU %rand% (
Set "value=%%#"
Set "value=!value:_= !"
Echo !value!
       Set /A "count=0"
GoTo :Break
)
Set /A "count+=1"
)
:Break

Pause&Exit /B 0


'Saludos!