Mensaje al Azar...en Batch

Iniciado por SmartGenius, 5 Mayo 2008, 03:09 AM

0 Miembros y 1 Visitante están viendo este tema.

SmartGenius

En estos dias estuve pensando en una idea para hacer que al abrir cualquier ejecutable... me mostrara un mensaje de error, pero aunque di con el code que me permitia abrir cualquier exe del sistema atraves de mi bat, no era capaza de que se mostrara un mensaje de error al azar....

busque y busque en varios foros, pero me encontraba solo con la opcion de la generacion de numeros, mas no de mensajes...

yo mismo me puse a probar en mi pc, y despues de varios intentos y de romperme loa cabeza, saque este code....

@echo off
title Generador de Mensajes Aleatorios

:main
set p=%random%
call :msg%p:~-1%

:msg1
echo.
echo  Mensaje 1
pause
exit

:msg2
echo.
echo  Mensaje 2
pause
exit

:msg3
echo.
echo  Mensaje 3
pause
exit

:msg4
echo.
echo  Mensaje 4
pause
exit

:msg5
echo.
echo  Mensaje 5
pause
exit

:msg6
echo.
echo  Mensaje 6
pause
exit

:msg7
echo.
echo  Mensaje 7
pause
exit

:msg8
echo.
echo  Mensaje 8
pause
exit

:msg9
echo.
echo  Mensaje 9
pause
exit

:msg0
echo.
echo  Mensaje 0
pause
exit


si alguien sabe una forma mejor de hacer esto que por favor la diga, ya que fue lo unico que se me ocurrio para mostrar (10) posibles mensajes... aunque se puede configurar para que sean 100, o los que quieran...

Saludos.


MK-Ultra

Que significa esto?


call :msg%p:~-1%


Muchas gracias!
Agradecer no cuesta nada (al menos no mucho)

BTC: 1DHKsWE6wGkUiHbKkwBDaF8DEGwn9n6nxQ

SmartGenius

Cita de: ^Arkangel^ en  5 Mayo 2008, 20:24 PM
Que significa esto?


call :msg%p:~-1%


Muchas gracias!

Bien... primero lo que hago es hacer un %random% que pongo dentro de la variable %p%

entonces con el call llamo a la funcion msg + el resultado de %p:~-1% que va a ser el ultimo numero que nos de el random, asi que si da 2 entonces llama a la funcion msg2, asi, pues muestra un mensaje al azar usando el random; fue la unica manera en que lo vi posible...

el call me parace mejor porque de esta manera podemos pasarle parametros %1 %* a otras funciones dentro del mismo code...

Saludos.


berz3k

Mensajes de error? a que te refieres con ello? quieres msgs de windows o de que tipo?

-berz3k.

SmartGenius

Cita de: berz3k en  6 Mayo 2008, 03:09 AM
Mensajes de error? a que te refieres con ello? quieres msgs de windows o de que tipo?

-berz3k.


Noo, simplemente es para que en bacth salga un mensaje al azar...

aunque tambien lo podemos hacer de esta manera, para mostrar los mensajes, e incluiriamos vbs...

echo MsgBox "Te Jodiste man... ;)"^&vbCrLf^&vbCrLf^&"Fuck you xD"^&vbCrLf^&" xD xD xD xD", 16, "Error de Programa" >>%temp%\msgr.vbs
start %temp%\msgr.vbs
exit


Saludos.


$hyDow

una cosa call:msg%p:~1 extraeria el primer caracter de %p% no?
entonces :-~ es para empezar por el final?


$hyDow

SmartGenius

Fijate que como yo lo puse %p:~-1% usa es el ultimo numero...

Si no estoy mas el simbolo ~ es para indicar que estamis trabajando con subcadenas o substrings...

Y seria de esta manera %p:~caracterinicial,cuantoscaracteres%

entonces si pongo %p:~3,-1% me extraera un carater a partir del tercero, contando desde izquierda a derecha, pero como lo hice inicialmente no puse el primer valor, osea que seria cero, y por lo tanto toma el ultimo valor...

Puedes ver un poco mas de codigo parecido en este post:

http://foro.elhacker.net/scripting/batch_executor_mi_primer_bichitomutante-t213661.0.html

Y para saber mas entras al CMD y escribes set/? y por ahi a mitad de la ayuda sale esto de expansion de variables y subcadenas...

Saludos.


$hyDow

hombre el parametro ~ lo conozco...
pero -~ no.


$hyDow

Crazy.sx

#8
Bueno, este código que te muestro acá es de una pequeña broma pesada que hice, que la llame "PUM", pero la acondicioné para que haga lo que vos querés, pero solo que acá mostrará tan solo 10 mensajes aleatorios diferentes y que admás guarda un log en C:\ (se le puede ampliar) pero lo básico está acá, esto tan solo es otro código más,... mirá:

Código (bash) [Seleccionar]
@echo off
set /A pum=%random%
echo %pum:~-1%
if %pum:~-1%==1 goto :uno
if %pum:~-1%==2 goto :dos
if %pum:~-1%==3 goto :tres
if %pum:~-1%==4 goto :cuatro
if %pum:~-1%==5 goto :cinco
if %pum:~-1%==6 goto :seis
if %pum:~-1%==7 goto :siete
if %pum:~-1%==8 goto :ocho
if %pum:~-1%==9 goto :nueve
if %pum:~-1%==0 goto :cero
:uno
echo UNO
msg * A ocurrido un error grave, tiene que comprarse una nueva PC
ECHO UNO-1>"c:\%pum:~-1%.txt

:dos
echo dos
msg * A ocurrido un error grave, tiene que comprarse una nueva PC
ECHO dos-2>"c:\%pum:~-1%.txt

:tres
echo tres
msg * A ocurrido un error grave, tiene que comprarse una nueva PC
ECHO tres-3>"c:\%pum:~-1%.txt

:cuatro
echo cuatro
msg * A ocurrido un error grave, tiene que comprarse una nueva PC
ECHO cuatro-4>"c:\%pum:~-1%.txt

:cinco
echo cinco
msg * A ocurrido un error grave, tiene que comprarse una nueva PC
ECHO cinco-5>"c:\%pum:~-1%.txt

:seis
echo seis
msg * A ocurrido un error grave, tiene que comprarse una nueva PC
ECHO seis-6>"c:\%pum:~-1%.txt

:siete
echo siete
msg * A ocurrido un error grave, tiene que comprarse una nueva PC
ECHO siete-7>"c:\%pum:~-1%.txt

:ocho
echo ocho
msg * A ocurrido un error grave, tiene que comprarse una nueva PC
ECHO ocho-8>"c:\%pum:~-1%.txt

:nueve
echo nueve
msg * A ocurrido un error grave, tiene que comprarse una nueva PC
ECHO nueve-9>"c:\%pum:~-1%.txt

:cero
echo cero
msg * A ocurrido un error grave, tiene que comprarse una nueva PC
ECHO cero-0>"c:\%pum:~-1%.txt


Bueno, es basicamente lo mismo que tu codigo... tan solo quedaria cambiar los mensajes que quieres mostrar o mejor aun crear un vbs como se dijo por ahi ;).

Saludos
Destruir K. LOL