Autor
|
Tema: [Batch] [APORTE] Clock (Alternativa a AT) (Leído 3,333 veces)
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.885
|
Hola. Estaba haciendo unas correcciones en un script de una persona en otro foro, Y me gustó bastante la idea del script, Así que decidí mejorarlo y simplificarlo... - Codeado por Ianna. Modificado por Elektro H@cker. Básicamente el script se podría comparar con el comando AT, Para realizar una acción determinada a una hora determinada (Eso si, Del mismo día). Obviamente no es un programador de tareas, Ni está tán completo como para commpararlo, Pero de algún modo si. CLOCK Pausa el proceso por lotes hasta que llega la hora, Y luego continua. Ejemplos: Clock 08:15:00 Echo+ Buenos dias !
Clock 22:50:00 Shutdown /R
Clock 14:30:00 Echo Ha llegado la hora de comer !
PD: Realizar un comando después de la hora no es algo obligatorio. Suspende el proceso de un programa por lotes hasta la hora determinada.
» CLOCK [HORA:MINUTO:SEGUNDO]
Ejemplos:
» CLOCK 20:30:15 » CLOCK 22:50:00 Shutdown /R
La hora se aplica con un formato de 24 horas.
(Codeado por Ianna. Modificado por Elektro H@cker.) El Script: ::::::::::::::::::::: ::: CLOCK UTILITY ::: ::::::::::::::::::::: ::: By El_Ianna ::: Mod by Elektro H@cker REM Comprobación de errores. REM Seteo de la hora seleccionada. IF " %FINAL:~0,1%" EQU "0" (Set FINAL= %FINAL:~1%) REM Seteo de la acción. :SLEEP SET "HORARIO= %TIME:~0,2%%TIME:~3,2%%TIME:~6,2%" SET "HORARIO= %Horario: =%" :HELP ECHO: MM'""""'YMM M""MMMMMMMM MMP"""""YMM MM'""""'YMM M""MMMMM""M ECHO: M' .mmm. `M M MMMMMMMM M' .mmm. `M M' .mmm. `M M MMMM' .M ECHO: M MMMMMooM M MMMMMMMM M MMMMM M M MMMMMooM M .MM ECHO: M MMMMMMMM M MMMMMMMM M MMMMM M M MMMMMMMM M MMMb. YM ECHO: M. `MMM' .M M MMMMMMMM M. `MMM' .M M. `MMM' .M M MMMMb M ECHO: MM. .dM M M MMb dMM MM. .dM M MMMMM M ECHO: MMMMMMMMMMM MMMMMMMMMMM MMMMMMMMMMM MMMMMMMMMMM MMMMMMMMMMM | MORE & REM " ECHO: Suspende el proceso de un programa por lotes hasta la hora determinada. | MORE ECHO: ¯ CLOCK [HORA:MINUTO:SEGUNDO] | MORE ECHO: ¯ CLOCK 22:50:00 Shutdown /R | MORE ECHO: La hora se aplica con un formato de 24 horas. | MORE ECHO: (Codeado por Ianna. Modificado por Elektro H @cker. ) | MORE :MSG ECHO msgbox "La sintaxis del comando no es correcta. CLOCK /? para mas informacion.",16,"Utilidad Clock (By Ianna )" > " %TEMP%\Clock.vbs" START /B Wscript "%TEMP%\Clock.vbs" :END ECHO: Utilidad Clock (By Ianna ) | MORE
|
|
« Última modificación: 4 Abril 2012, 07:03 am por EleKtro H@cker »
|
En línea
|
|
|
|
$Edu$
Desconectado
Mensajes: 1.842
|
Esta bueno, podrias hacer que sea solo HH:MM que es lo que mas se usara.. segundos no creo que alguien ponga, pero si alguien indica que tambien los cuente. No creo que lo modifiques, pero te digo solamente para que quede perfecto porque esta bueno. Solo una pregunta.. no tenes porque contestarme vs si no sabes, cualquiera que lea aca igual.. Cuando se hacen bucles de mucho tiempo yo en otros lenguajes de programacion, utilizo una instruccion que es "DoEvents" que lo que hace es que no se trabe el programa y el usuario pueda seguir haciendo cosas, tambien para que no me consuma toda la memoria el bucle al verificar lo mismo muchas veces y muy rapido. Pero veo que vs no usas nada ahi, solo haces el bucle y ta.. sera que en batch no es necesario? has probado si no te consume ram como digo yo? no puedo probarlo yo en este momento. Si no se entiende que digo, diganme, hablo del bucle principal: :SLEEP SET "HORARIO= %TIME:~0,2%%TIME:~3,2%%TIME:~6,2%" SET "HORARIO= %Horario: =%"
Perdon por el doble post pero que hace esto: SET "HORARIO= %TIME:~0,2%%TIME:~3,2%%TIME:~6,2%" SET "HORARIO= %Horario: =%"
Parte por parte, porque me olvide, la primera si se que hace pero lo segundo no se el porque, pero explicame todo por las dudas, si podes claro. Gracias
|
|
« Última modificación: 4 Abril 2012, 17:02 pm por EleKtro H@cker »
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.885
|
veo que vs no usas nada ahi, solo haces el bucle y ta.. sera que en batch no es necesario?
Esto es procesamiento por lotes xD, No es que no séa necesario, Es que no se puede... Mientras el bucle trabaja, solo puedes esperar a que acabe... Aquí en Batch no hay ni Rescue, ni DoEvents ni nada similar, Si lo sabes de sobra! xD Gracias a Dios que batch ya tiene comparaciones condicionales, No le pidas más . Lo de los segundos lo estuve pensado, Pero llegué a la conclusión de que dejando a un lado si se usará mucho o no, Es más preciso así, Y no cuesta nada teclear " :00" xD De todas formas es algo que se solucionaría rápidamente dejando esta linea así: SET "HORARIO=%TIME:~0,2%%TIME:~3,2%" (Y usando el script sin escribir los segundos, claro, sinó puede que de error, Tendría que probarlo...) SET "HORARIO= %TIME:~0,2%%TIME:~3,2%%TIME:~6,2%" SET "HORARIO= %Horario: =%"
la primera si se que hace pero lo segundo no se el porque Eso es un fallo que correjí del code original, Que no funcionaba en horario de madrugada. Si compruebas el contenido de la variable %TIME% entre las horas " 0:00 AM - 9:00 AM", Siempre llevará un espacio al principio, Como por ejemplo esta hora: " 8:57:47,21" Lo que hace la segunda linea es eliminar el primer espacio de la variable %horario% (Si tuviera un espacio). Salu2!
|
|
|
En línea
|
|
|
|
$Edu$
Desconectado
Mensajes: 1.842
|
Ahi va, entendido. Hace poco un usuario pidio algo de esto y le hice un codigo con algo de esto, no se si tome en cuenta ese posible bug o no, se habra dado cuenta si no lo hice xD
Sobre lo del Doevents.. entonces yo si ejecuto el script para dentro de 8 horas, puedo trabajar tranquilamente en mi compu, hasta esa hora?, es la idea ya se, pero como te decia si haces esto en un lenguaje de programacion sin poner DoEvents no podes hacer nada. Pero ta, no es necesario el DoEvents, listo xD
Gracias.
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.885
|
si ejecuto el script para dentro de 8 horas, puedo trabajar tranquilamente en mi compu, hasta esa hora?
hmm yo pensé que te referias al bat, no al pc xD. El bat se queda procesando el bucle sin poder hacer nada en esa instancia de la consola, Por lo demás si puedes trabajar tranquilamente en tu PC, siempre y cuando no estemos hablando de un pc con 32 mb de ram xD, No se ralentiza pero quizás debería haber puesto algún "ping" en el bat... Salu2
|
|
|
En línea
|
|
|
|
$Edu$
Desconectado
Mensajes: 1.842
|
Ahi va si, un ping es lo que he visto que usan en lugar del DoEvents, porque imaginate.. todas las veces que pasa por el bucle en poco tiempo, eso es lo que trae problemas, pero si lo has probado y todo bien, entonces no es el caso. Lo del ping no sirve porque dejara de ser preciso, si fuera hasta minutos solamente, ahi podes hasta meterle un ping de 20 paquetes igual, asi pasara por el bucle cada 20 segundos aproximadamente. Pero vamos, si ya anda ni te molestes
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[Batch] Un pequeño aporte
« 1 2 »
Scripting
|
najmuddin
|
13
|
8,284
|
25 Junio 2008, 21:21 pm
por najmuddin
|
|
|
[Batch] Alternativa a cls
Scripting
|
0x0309
|
1
|
2,736
|
27 Abril 2009, 08:21 am
por EddyW
|
|
|
[Batch] Aporte, Soy electronico
Scripting
|
Geormarsch
|
5
|
4,135
|
9 Enero 2012, 10:24 am
por leogtz
|
|
|
[Batch] [APORTE] Text Protector
Scripting
|
Eleкtro
|
2
|
3,776
|
29 Diciembre 2012, 13:42 pm
por Eleкtro
|
|
|
[APORTE] [BATCH] Acentos en los programas Batch - La mejor solución
Scripting
|
Príncipe_Azul
|
5
|
13,263
|
2 Mayo 2014, 00:09 am
por cyberalejo17
|
|