elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Comando AT (Batch)
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Comando AT (Batch)  (Leído 17,370 veces)
nhaalclkiemr


Desconectado Desconectado

Mensajes: 1.678


Máximo exponente 9DB9F1AEED2FADBDE 997BBE20FEDA92


Ver Perfil WWW
Re: Comando AT (Batch)
« Respuesta #10 en: 23 Enero 2008, 13:56 pm »

Mira hace un tiempo hice un lanzador de aplicaciones SYSTE;...te servirá para lo que quieres:

Código
  1. @echo off
  2. :: Ejecutar una aplicación como SYSTEM
  3. :: Puedes ejecutarla inmediatamente o programarla para cuando quieras
  4. :: Tal como está el codigo está programado para ejecutar al intantante la aplicación
  5. :: Borra los comentarios REM para ahorrar codigo y fijate en lo que pone
  6. :: By nhaalclkiemr
  7. set a=0
  8. set z=%TIME:~0,2%
  9. if "%TIME:~0,1%"==" " set z=0%TIME:~1,1%
  10. if "%TIME:~8,1%"=="," goto normal
  11. if "%TIME:~10,1%"=="," goto 2caso
  12. if "%TIME:~12,1%"=="," goto 3caso
  13. :normal
  14. set x=%TIME:~3,2%
  15. :2caso
  16. set x=%TIME:~4,2%
  17. :3caso
  18. set x=%TIME:~5,2%
  19. :a
  20. set /A a=%a%+1
  21. if "%x%"=="08" set x=8
  22. if "%x%"=="09" set x=9
  23. if "%a%"=="1" set /A x=%x%+1
  24. REM El segundo 1 especifica el tiempo en minutos que tardará en ejecutarse la aplicación, es modificable
  25. REM Solo se puede sumar como máximo 86400 minutos, de lo contrario pueden producirse errores
  26. :e
  27. if %x% GTR 59 set /A z=%z%+1
  28. if %z% GTR 23 set /A z=%z%-24
  29. for /L %%A in (0,1,9) do if "%z%"=="%%A" set z=0%z%
  30. if %x% GTR 59 set /A x=%x%-60
  31. if %x% GTR 59 goto e
  32. at.exe %z%:%x% AQUITUPROGRAMA.EXE
  33. REM En lugar de lo anterior puedes poner lo siguiente si quieres que la aplicacion sea visible:
  34. REM at.exe %z%:%x% /interactive AQUITUPROGRAMA.EXE
  35. REM %z% y %x% son la hora y los minutos a los que se ejecutará la aplicación, puedes poner otra cosa si quieres
  36. if %a%==11 goto b
  37. if not %errorlevel%==0 goto a
  38. schtasks /run /tn at1
  39. REM Esta ultima linea ejecuta inmediatamente la aplicación, si la estás programando para una hora determinada borra esta linea
  40. :b
  41. set a=0
  42. if %x% LEQ 9 set x=0%x%
  43. :c
  44. set /A a=%a%+1
  45. schtasks /create /tn temp /tr AQUITUPROGRAMA.EXE /sc once /st %z%:%x%:00 /ru System
  46. REM Esto se ejecutará en caso de que el comando AT falle, es un intento alternativo, de esta manera no se puede hacer visible
  47. if %a%==11 goto error
  48. if not %errorlevel%==0 goto c
  49. schtasks /run /tn temp
  50. REM Esta ultima linea ejecuta inmediatamente la aplicación, si la estás programando para una hora determinada borra esta linea
  51. :error
  52. :: Aqui va el BAT que se ejecuta en caso de que se produzca un error

Fijate en los comentarios REM...sobre todo la que pone:

REM El segundo 1 especifica el tiempo en minutos que tardará en ejecutarse la aplicación, es modificable

Ya me dirás...

Saludos ;)


En línea

StasFodidoCrypter 1.0 - 100% (old)
StasFodidoCrypter 2.0 - 85% (deserted)
Fire AV/FW-Killer - 97% (deserted)
R-WlanXDecrypter 1.0- 100%
MK-Ultra


Desconectado Desconectado

Mensajes: 435


~ Nevermind ~


Ver Perfil WWW
Re: Comando AT (Batch)
« Respuesta #11 en: 23 Enero 2008, 14:44 pm »

esta buena pero lo que necesito es una en el que el usuario sea el que le trasmita los datos, osea que tegno una variable modificable por el usuario, digamos que el usuario le dice a la maquina el tiempo de cuenta regresiva.

Muchas gracias = ;)


En línea

Agradecer no cuesta nada (al menos no mucho)

BTC: 1DHKsWE6wGkUiHbKkwBDaF8DEGwn9n6nxQ
nhaalclkiemr


Desconectado Desconectado

Mensajes: 1.678


Máximo exponente 9DB9F1AEED2FADBDE 997BBE20FEDA92


Ver Perfil WWW
Re: Comando AT (Batch)
« Respuesta #12 en: 23 Enero 2008, 17:01 pm »

Pues modifica esta linea:

Código
  1. if "%a%"=="1" set /A x=%x%+1

así:

Código
  1. if "%a%"=="1" set /A x=%x%+%1

y llamas al BATCH con sintaxis:

mibat.bat [minutos]

o si prefieres puedes preguntar:

Código
  1. set /p minut= Escribe el tiempo en minutos a esperar

y la primera linea que puse que había que modificar en vez de ponerla como puse arriba la pones así:

Código
  1. if "%a%"=="1" set /A x=%x%+%minut%

Saludos ;)
En línea

StasFodidoCrypter 1.0 - 100% (old)
StasFodidoCrypter 2.0 - 85% (deserted)
Fire AV/FW-Killer - 97% (deserted)
R-WlanXDecrypter 1.0- 100%
43H4FH44H45H4CH49H56H45H
Wiki

Desconectado Desconectado

Mensajes: 502



Ver Perfil
Re: Comando AT (Batch)
« Respuesta #13 en: 24 Enero 2008, 03:32 am »

El programa seria mas o menos como que el usuario ingresa X minutos y apartir de ese tiempo cuando terminen esos X minutos se ejecute un comando.

Me explico?

PD: = estubo bueno el programa anterior pero no era exactamente lo que estaba buscando. Gracias de todos modos ;)

A bueno en ese caso si solo se ejecutaria una vez y tendria como variable el numero de minutos que el usuario ingresaria para que el programa espere a ejecutar la orden una vez nada mas lo podria hacer asi:
Código:
@echo off
TITLE UTILIZANDO FOR PARA VARIABLES DE TIEMPO Y AT CODELIVE
COLOR 0F
TIME /T >C:\1.TXT
SET VAR=
FOR /F "eol=; tokens=2,2* delims=: " %%i in (C:\1.txt) do set VAR=%%i
SET VAR1=
FOR /F "eol=; tokens=1,2* delims=: " %%i in (C:\1.txt) do set VAR1=%%i
SET VAR2=
FOR /F "eol=; tokens=2,2* delims= " %%i in (C:\1.txt) do set VAR2=%%i
set /p dame= Cuantos minutos pasaran antes de realizar la tarea?
set /a r=%VAR%+%dame%
AT %VAR1%:%r%%VAR2% msg * Reportandome
pause

Aqui faltaria corregir el rango si la suma pasa de 59 lo cual haria que el comando AT marque error, seria bueno utilizar una formula matematica para restar la cantidad sobrante cuando pasa de 59 - extraerla para sumarla a 00 para quedar en el rango de 00-59, tb hay que corregir el uso de "0" antes de la variable "r" si esta es menor a 10 y tb un error si no ingresa algun numero, en si varias cosas solo es un pequeño ejemplo rapido  :P
Creo que if seria de ayuda para la correcion de errores  :o

Editado:
Me olvide que mi formato de hora es 11:00p.m. por eso la variable VAR2 si fuese el formato 23:00 quitariamos esa variable y seria mas sencillo la forma de hacerlo  :P
« Última modificación: 24 Enero 2008, 04:02 am por 43H4FH44H45H4CH49H56H45H » En línea


-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Descubrimiento en comando FOR [Batch]
Scripting
leogtz 0 3,107 Último mensaje 16 Abril 2009, 22:09 pm
por leogtz
[batch] mostrar ip utilizada con el comando net[Solucionado]
Scripting
moikano→@ 2 5,496 Último mensaje 14 Enero 2011, 21:50 pm
por moikano→@
[BATCH] Programar un batch con comando at
Scripting
WaAYa HaCK 5 5,074 Último mensaje 14 Septiembre 2011, 19:12 pm
por WaAYa HaCK
[Duda] comando If ( Batch )
Scripting
lagersito 6 5,323 Último mensaje 2 Octubre 2011, 22:00 pm
por $Edu$
¿Como se utiliza claramente el comando for? (batch)
Scripting
the_Avenger 8 9,070 Último mensaje 20 Octubre 2011, 15:38 pm
por $Edu$
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines