Ms-Dos - Ejecutar un archivo aleatoriamente...

 
Vista:

Ejecutar un archivo aleatoriamente...

Publicado por Alejo (11 intervenciones) el 30/06/2009 05:04:34
Gente amable del foro de ms-dos, ya más de una vez me ayudaron, quería saber si por favor me pueden mostrar un script que me elija aleatoriamente un archivo dentro de todos los archivos que puede contener un directorio, a fin de ser ejecutado. Quizás es algo sencillo, pero yo no sé hacerlo. Uds. me dirán. Gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ejecutar un archivo aleatoriamente...

Publicado por Antoni Masana (295 intervenciones) el 30/06/2009 12:11:24
¿ Que finalidad tiene semejante aberracion ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ejecutar un archivo aleatoriamente...

Publicado por Alejo (1 intervención) el 01/07/2009 03:23:00
honestamente... mirá si no habré leido que preguntaban cantidad de estupideces en este mismo foro... no veo por qué lo mío sería una aberración. Más que nada me interesa saber si existe un comando que trabaje números (pseudo)aleatorios, creo que ése es todo el problema, como aplicar se puede aplicar a cualquier problema, el caso particular no es importante... creo que de eso se trata este foro... no?? también se puede discutir sobre DOS por el DOS mismo, no? A ver, decime vos para qué se usan los números pseudoaleatorios en la informática y en la tecnología?? Aberración es escribir aberración sin tilde gil... por lo menos aprendé a escribir antes de querer venir a decirme cómo son las cosas, salame. A ver si respetamos más...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ejecutar un archivo aleatoriamente...

Publicado por Antoni Masana (295 intervenciones) el 01/07/2009 07:33:26
Alejo perdona si te he molestado, no era mi intencion.
Me ha sorprendido el planteamiento.

El significado de la palabra aberración segun el Wikcionario es:
- En sentido figurado, comportamiento desviado de lo aceptado como normal.

Comprende que " elija aleatoriamente un archivo " no entra dentro de lo normal al menos desde MS-DOS o eso creia yo, de lo que reconozco que estaba equivocado.

Despues de las disculpas la respuesta.

El MSDOS no dispone de ningun comando que genere numeros aleatorios.

Un truco mas o menos valido seria utilizar el RELOJ (en este caso el comando TIMER) y con los segundos usarlos como referencia. Auque muy aleatorios no son.

El comando Timer te devuelve la hora en formato HH:MM:SS.CC

Donde CC son centesimas de segundo

si ejecutas

@ECHO OFF
SET num=%TIME:~7,4%
ECHO %Num%

Tienes un numero Aleatorio ( Probado en Windows XP)

El primer valor ( 7 ) del comando SET es la posicion que empieza a contar desde el 0 y el segundo valor ( 4 ) es el numero de caracteres.

-----

Otra opcion seria generar el numero con el comando SET que permite operaciones aritmeticas y desplazamientos binarios (¿?)

Recuerdo que en mis practicas con el lenguaje C hicimos una rutina que generaba numeros aleatorios realizado desplazamientos binarios pero no recuerdo como funcionaba.

--------------------------------------------------------------------------

SET /? (extracto)
....
Se han agregado dos modificadores nuevos al comando SET:

SET /A expression
SET /P variable=[promptString]

El modificador /A especifica que la cadena a la derecha del signo de igual
es una expresión numérica que es evaluada. El evaluador de expresiones es
bastante simple y es compatible con las siguientes operaciones, en orden de
precedencia decreciente:

() - agrupar
! ~ - - operadores unarios
* / % - operadores aritméticos
+ - - operadores aritméticos
<< >> - desplazamiento lógico
& - bit a bit y
^ - bit a bit exclusivo o
| - bit a bit
= *= /= %= += -= - asignación
&= ^= |= <<= >>=
, - separador de expresión
....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ejecutar un archivo aleatoriamente...

Publicado por amparitohijo (94 intervenciones) el 01/07/2009 12:13:02
Hola Alejo. Creo que no deberías ofenderte por el comentario de Antoni, puesto que no está para nada fuera de lugar. El querer abrir un archivo aleatorio en MSDOS en sí, es una aberración. No es que se esté metiendo contigo, sino que simplemente le sorprende (al igual que a mi) el que alguien necesite esa funcionalidad desde MSDOS, ya que, la utilización de scripts en msdos está pensada para todo lo contrario: tener controlados todas y cada una de las acciones que se realizan y no dejar nada al azar.

Bueno, tras hacer de "abogado del diablo", aumento un poco la respuesta de Antoni.

Existe una variable del sistema en Windows XP que es %RANDOM%, que genera un número decimal aleatorio entre 0 y 32767.

Puedes probar lo siguiente:
ECHO %RANDOM%

Para aplicarla a tu programa puedes acotarla a 2 ó 3 dígitos de la siguiente forma:

SET/A Variable1=%RANDOM:~0,2%
Esto te devolverá un número de 2 dígitos.

SET/A Variable2=%RANDOM:~0,3%
Esto de 3 dígitos, y así sucesivamente.

PD.: Por favor, no te sientas ofendido por el comentario de Antoni, y coméntanos si te sirve algo de lo que te hemos enseñado. Y ya, si te tiras el rollo, nos explicas para qué necesitas generar números aleatorios en MSDOS, y qué sentido tiene, por favor. Que a mi personalmente me tienes intrigadísimo.

Salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de A.H.H.

RE:Ejecutar un archivo aleatoriamente...

Publicado por A.H.H. (216 intervenciones) el 01/07/2009 22:21:58
Hola Amparitohijo, extendiendo un poco lo de %random%, que lo has explicado muy bien , con lo siguiente puedes limitar los numeros aleatorios.

Esto es para solo sacar numeros del 0 al 49 al azahar.

Set /a Number=(%Random% %%49)
echo %Number%

y si no quieres que entre esos numeros salga el 0, le sumamos 1

Set /a Number=(%Random% %%49)+1

asi ya no saldra el numero 0

salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ejecutar un archivo aleatoriamente...

Publicado por amparitohijo (94 intervenciones) el 02/07/2009 11:42:27
Buen aporte. Muchas gracias.

En realidad, no se dónde se podría aplicar, pero siempre viene bien saberlo... Me lo apunto en el cuadernito mágico, jejeje

Gracias otra vez y un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ejecutar un archivo aleatoriamente...

Publicado por Alejo (2 intervenciones) el 03/07/2009 18:08:33
Bueno, siendo así pido disculpas por el exabrupto, aunque vamos a ponernos de acuerdo en que deberían revisar algunos conceptos, como el de aberración, jaja. Me llamaba la atención porque siempre me habían contestado muy bien en el foro, y si no me equivoco Uds. mismos, amparitohijo y Antoni Masana alguna vez ya me solucionaron algunos problemas. Bueno gracias por poner un manto de sana convivencia!

Al problema de la generación de números aleatorios no le presté mayor importancia en cuanto a su aplicación. No sabía si preguntar por miedo a preguntar una estupidez, pero la verdad es que, personalmente y por gracioso que sea, en mi caso parte del aburrimiento y la curiosidad. Estaba pensando, dado un grupo de accesos directos a Internet, todos de mi interés pero ninguno más importante que otro (tipo la carpeta "favoritos" de Internet Explorer), pensaba de qué forma podía ingresar yo a alguno de ellos sin tener que hacer yo la elección de qué sitio voy a visitar... sí, eso, jaja. Es decir, generar algún script "elija" por mí, el sitio que voy a visitar por vez. De esta manera quería asociar un número a cada archivo existente en la carpeta y usar %RANDOM% para que abra aleatoriamente un sitio web.

Me llama la atención que a Uds. les sorprenda encontrar una aplicación para un comando que genere números aleatorios, ya que se me ocurren muchas aplicaciones para ellos (no necesariamente en DOS, pero a modo de ejemplo), desde la función de "reproducir en orden aleatorio" que trae cualquier reproductor de música, hasta en estadística, que mediante el uso de números aleatorios se pueden simular "muestras" con las que después se puede practicar estadística (la simulación se la puede hacer hasta con el bontón RANDOM de una calculadora). Mi curiosidad básicamente apuntaba a éso, a saber si existía algún equivalente para el DOS, para ponerlo en práctica y como para tener en cuenta por si algún día lo llego a necesitar para verdaderamente útil. Bueno gracias! Los ejemplos que me dieron los voy a poner en práctica ya que siempre me fueron de utilidad.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ejecutar un archivo aleatoriamente...

Publicado por Antonio Masana (295 intervenciones) el 06/07/2009 08:05:07
Alejo comprendo tu curiosidad y te puedo asegurar que nunca se me he planteado necesitar un valor aleatorio desde MS-DOS o desde un BAT y por eso me sorprendió la pregunta.

Si es verdad que los he utilizado (los valores aleatorios) para crear juegos o simular estadísticas o incluso para alguna que otra aplicación pero siempre desde algún lenguaje de programación.

Desde luego si al MS-DOS le han puesto la opción %RANDOM% debe ser para algo aunque yo no sepa para que y el hecho de que no lo sepa no quiere decir no tenga utilidad.

Tu planteamiento me descoloco un poco, es que algunos llevamos con MS-DOS desde muchísimo antes de que existiese el Windows y por aquel entonces este: por hacer una excepción aceptaremos MS-DOS como "Sistema Operativo" tenia bastantes menos comandos y muchos de los actuales tenían una funcionalidad muy limitada y estamos un poco oxidados.

Bueno no es exactamente oxidados, es que como este engendro a sido siempre muy limitado, ha sido necesario buscar otras alternativas para solucionar los problemas y uno no piensa que la actual versión pueda hacerlo.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de A.H.H

RE:Ejecutar un archivo aleatoriamente...

Publicado por A.H.H (216 intervenciones) el 06/07/2009 23:34:13
HOLA ALEJO

TE He hecho un ejemplo, un poco chapuza pero que funciona perfectamente en windows xp, de ejecutar direcciones .url de la carpeta favoritos al azahar usando %random%.

copia lo siguiente a un .bat y cada vez que lo ejecutes te abre una url diferente de las que tienes en tu directorio de favoritos.

@echo off
REM ::EL PROGRAMA USA EN LA RUTA %TEMP% 3 ARCHIVOS TXT::
REM ::LA RUTA1 ES EL DIRECTORIO DE FAVORITOS::
REM ::LAS DEMAS RUTAS SON TEMPORALES::
set ruta1=%userprofile%\Favoritos
set ruta2=%temp%\favoritos.txt
set ruta3=%temp%\favoritosenumerados.txt
SET ruta4=%Temp%\rutaejecutar.txt
set numarchivos=""
set numazahar=""
set rutazahar=""
rem ::sacamos a un archivo txt, las rutas de los archivos de favoritos::
dir /B /S "%ruta1%">"%ruta2%"

rem ::enumeramos todas las lineas de txt con su numero de linea::
find /v /n "" "%ruta2%" > "%ruta3%"
rem ::obtenemos el ultimo numero de linea para ingresarlo en random::
for /f "tokens=1 delims=[]" %%A in (%ruta3%) do set numarchivos=%%A
echo EL NUMERO DE ARCHIVOS QUE TIENES EN FAVORITOS ES DE: %numarchivos%
echo.
echo.
set /A numazahar=(%random% %%numarchivos)+1
ECHO RANDOM ELIGE AL AZAHAR EL NUMERO: %numazahar% QUE CORRESPONDE A LA RUTA:
ECHO.
echo.
echo.
REM ::obtenemos la ruta completa que corresponde al numero al azahar::
REM ::Haciendo limpieza del numero con los corchetes::
find "[%numazahar%]" "%ruta3%" > "%ruta4%"
for /f "tokens=*" %%L in (%ruta4%) do set rutazahar=%%L
set rutazahar=%rutazahar:]=%
set rutazahar=%rutazahar:[=%
set rutazahar=%rutazahar:1=%
set rutazahar=%rutazahar:2=%
set rutazahar=%rutazahar:3=%
set rutazahar=%rutazahar:4=%
set rutazahar=%rutazahar:5=%
set rutazahar=%rutazahar:6=%
set rutazahar=%rutazahar:7=%
set rutazahar=%rutazahar:8=%
set rutazahar=%rutazahar:9=%
set rutazahar=%rutazahar:0=%
echo %rutazahar%
echo.
echo.
echo Pulsa tecla para ejecutar direccion url elegida al azahar.....Espera..
pause>nul
start "IEXPLORER" "%rutazahar%">nul


ESPERO TE SIRVA SALU2, IGUAL ME PODRIA HABER AHORRADO COMANDOS PERO....ENFIN.......SALU2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de A.H.H

RE:Ejecutar un archivo aleatoriamente...

Publicado por A.H.H (216 intervenciones) el 06/07/2009 23:43:57
hola Alejo pon cuidado al copiar el codigo pues la web separa mal alguna frase y te dara error

por ejemplo donde dice:

echo EL NUMERO DE ARCHIVOS QUE TIENES EN FAVORITOS ES DE: %numarchivos%

deberia decir al final %numarchivos%

y hay alguna mas......

pero funcionar funciona por lo menos en xp

salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de A.H.H

RE:Ejecutar un archivo aleatoriamente...

Publicado por A.H.H (216 intervenciones) el 07/07/2009 13:44:20
Hola de nuevo, aqui expongo el codigo mejorado, pues el de antes si tenias en la carpeta favoritos alguna .url que tuviese numeros o corchetes pues daria error, ahora con el siguiente codigo pues creo que no.

@echo off
REM ::EL PROGRAMA USA EN LA RUTA %TEMP% 3 ARCHIVOS TXT::
REM ::LA RUTA1 ES EL DIRECTORIO DE FAVORITOS::
REM ::LAS DEMAS RUTAS SON TEMPORALES::
set ruta1=%userprofile%\Favoritos
set ruta2=%temp%\favoritos.txt
set ruta3=%temp%\favoritosenumerados.txt
SET ruta4=%Temp%\rutaejecutar.txt
set numarchivos=""
set numazahar=""
set rutazahar=""
rem ::sacamos a un archivo txt, las rutas de los archivos de favoritos::
dir /B /S "%ruta1%">"%ruta2%"
rem ::enumeramos todas las lineas de txt con su numero de linea::
find /v /n "" "%ruta2%" > "%ruta3%"
rem ::obtenemos el ultimo numero de linea para ingresarlo en random::
for /f "tokens=1 delims=[]" %%A in (%ruta3%) do set numarchivos=%%A
echo El numero de archivos en Favoritos es de: %numarchivos%
echo.
echo.
set /A numazahar=(%random% %%numarchivos)+1
ECHO RANDOM Elige al Azahar el numero: %numazahar% que corresponde a la ruta:
ECHO.
echo.
echo.
REM ::obtenemos la ruta completa que corresponde al numero al azahar::
REM ::Haciendo limpieza del numero con los corchetes::
find "[%numazahar%]" "%ruta3%" > "%ruta4%"
for /f "tokens=2* delims=]" %%L in (%ruta4%) do set rutazahar=%%L
echo %rutazahar%
echo.
echo.
echo Pulsa tecla para ejecutar direccion url elegida al azahar.....Espera..
pause>nul
start "IEXPLORER" "%rutazahar%">nul


salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ejecutar un archivo aleatoriamente...

Publicado por Alejo (2 intervenciones) el 20/07/2009 21:31:24
Hola! bueno, gracias a todos, gracias A.H.H. por tomarte la molestia de pasarme el script, lo voy a probar. Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de A.H.H.

RE:Ejecutar un archivo aleatoriamente...

Publicado por A.H.H. (216 intervenciones) el 22/07/2009 20:00:57
Hola Alejo, no tienes que dejar ningun espacio al termino de las siguientes frases:

set ruta1=%userprofile%\Favoritos <-------sin espacio despues de Favoritos
set ruta2=%temp%\favoritos.txt <-------sin espacio despues de .txt
set ruta3=%temp%\favoritosenumerados.txt <-------sin espacio despues de .txt
SET ruta4=%Temp%\rutaejecutar.txt <-------sin espacio despues .txt

pues en la web salia con un espacio y daba error las rutas, tampoco se le pueden poner comillas porque da error por eso hay que ponerlas sin espacio despues de las frases.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ejecutar un archivo aleatoriamente...

Publicado por mauro (1 intervención) el 15/05/2015 16:59:13
Solo pasaba por este foro buscando esta misma informacion de del tema, ejecutar archivos aleatorios con cmd.
No se que tipo de persona se asombra una pregunta asi. hay muchos programas que generan condigos aleatorios en la actualidad.
Repito es una estupidez asombrarse de una pregunta asi, para eso esta el codigo random sino no existiria, no hubiera creado microsoft manga de giles los que le respondieron todos eso comentarios que es al pedo usar el codigo random.
No entiendo como hay gente que esta en foros asi solo para decir pabada, estos foros son para ayudar a la gente, y si uno hace una pregunta en concreto en un foro es por algo, algo tenemos en mente para eso hacen las preguntas.
Estaria bueno que los foros detecte como virus o no se que comentarios absurdos como los suyos.
VAMOS ARRIBA ALEJO ¡
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar