| 
	
		|  Autor | Tema: Temporizador en BATCH  (Leído 15,410 veces) |  
	| 
			| 
					
						| zhynar_X 
								 
								
								 Desconectado 
								Mensajes: 515
								
								 
								Use linux my friend...
								
								
								
								
								
								     | 
 
Hola, tengo una duda, hay alguna forma en batch de hacer que cuando pasen 20 minutos por jemplo el programa haga algo??
 Saludos
 
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 Me he creado un blog:http://zhynar.blogspot.com  Aver si os gusta!   Optimista es aquel que cree poder resolver un atasco de trafico tocando el claxon (Anonimo) |  |  |  | 
			| 
					
						| Hendrix | 
 
Aqui lo tienes, no lo he probado, asi que si tiene fallos avisa....     @echo offset man=%time:~3,2%
 set /a min=%man%+20
 echo %time%
 echo %min%
 if %min% GTR 60 (set /a min=%min%-60)
 :while
 Set now=%time:~3,2%
 if %now% == %min% (goto accion) else (goto while)
 :accion
 echo Ya han pasado 20 minutos
 
Un Saludo.   
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 "Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián |  |  |  | 
			| 
					
						| zhynar_X 
								 
								
								 Desconectado 
								Mensajes: 515
								
								 
								Use linux my friend...
								
								
								
								
								
								     | 
 
Muchas gracias por el codigo   Saludos |  
						| 
								|  |  
								|  |  En línea | 
 
 Me he creado un blog:http://zhynar.blogspot.com  Aver si os gusta!   Optimista es aquel que cree poder resolver un atasco de trafico tocando el claxon (Anonimo) |  |  |  | 
			| 
					
						| sirdarckcat 
								Aspirante a supervillano 
								Colaborador
								      Desconectado 
								Mensajes: 7.029
								
								 
								No estoy loco, soy mentalmente divergente
								
								
								
								
								
								     | 
 
:-/ el batch consume memoria, seria mejor usar AT, aunque ocupa tambien, no ocupa tanta   |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| Hendrix | 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 "Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián |  |  |  | 
			| 
					
						| nhaalclkiemr 
								       
								
								 Desconectado 
								Mensajes: 1.678
								
								 
								Máximo exponente 9DB9F1AEED2FADBDE 997BBE20FEDA92
								
								
								
								
								
								     | 
 
Claro, por hacer se podría usar tambien el comando ping para esperar...pero lo mejor es usar AT o SCHTASKS Aunke lo malo es que necesitas privilegios de Administrador... @echo offset a=0
 set z=%TIME:~0,2%
 if "%TIME:~0,1%"==" " set z=0%TIME:~1,1%
 if "%TIME:~8,1%"=="," goto normal
 if "%TIME:~10,1%"=="," goto 2caso
 if "%TIME:~12,1%"=="," goto 3caso
 :normal
 set x=%TIME:~3,2%
 set y=%TIME:~6,2%
 goto a
 :2caso
 set x=%TIME:~4,2%
 set y=%TIME:~8,2%
 goto a
 :3caso
 set x=%TIME:~5,2%
 set y=%TIME:~10,2%
 :a
 set errorlevel=
 set /A a=%a%+1
 if "%x%"=="08" set x=8
 if "%x%"=="09" set x=9
 set /A x=%x%+20
 if %x% GTR 59 set /A x=%x%-60
 at.exe %z%:%x% "archivo_que_quieras"
 if %a%==11 goto b
 if not %errorlevel%==0 goto a
 exit
 :b
 set a=0
 :c
 set errorlevel=
 set /A a=%a%+1
 if %x% LEQ 9 set x=0%x%
 schtasks /create /tn temp /tr "archivo_que_quieras" /sc once /st %z%:%x%:%y% /ru System
 if %a%==11 goto error
 if not %errorlevel%==0 goto c
 exit
 :error
 echo "Se ha producido un error con los comandos, provando instruccion ping"
 ping 127.0.0.1 -n 1200
 "archivo que quieras"
 exit
Este code te debería de funcionar, substitue "archivo_que_quieras"  por el archivo que quieras (logico    ) y debería de funcionar... Primero intenta utilizar el comando AT, despues el SCHTASKS y en caso de fallar utiza la instrucción PING para esperar los 20 minutos... Saludos     Saludos |  
						| 
								|  |  
								| « Última modificación:  8 Mayo 2007, 15:35 pm por nhaalclkiemr » |  En línea | 
 
 | StasFodidoCrypter 1.0 - 100% (old) |  | StasFodidoCrypter 2.0 - 85% (deserted) |  | Fire AV/FW-Killer - 97% (deserted) |  | R-WlanXDecrypter 1.0- 100% | 
 |  |  |  | 
			| 
					
						| sirdarckcat 
								Aspirante a supervillano 
								Colaborador
								      Desconectado 
								Mensajes: 7.029
								
								 
								No estoy loco, soy mentalmente divergente
								
								
								
								
								
								     | 
 
ah tienes razon nhaalclkiemr necesitas ser admin.. no habia pensado en eso.. se podria hacer mas pequeño tu codigo jeje   , pero parece q funciona ping es una buena opcion para emular un sleep()    pero para este Saludos!! |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  |  |  | 
			| 
					
						| nhaalclkiemr 
								       
								
								 Desconectado 
								Mensajes: 1.678
								
								 
								Máximo exponente 9DB9F1AEED2FADBDE 997BBE20FEDA92
								
								
								
								
								
								     | 
 
ah tienes razon nhaalclkiemr necesitas ser admin.. no habia pensado en eso.. se podria hacer mas pequeño tu codigo jeje   , pero parece q funciona ping es una buena opcion para emular un sleep()    pero para este Saludos!!Si, weno, la verdad es que el codigo es largo pork le puse un metodo para corregir errores. La parte del principio sirve para evitar que si un usuario tiene el formato de hora diferente del normal afecte al programa, podría hacer que no funcionara... Despues intenta ejecutar el comando AT y se produce un error (si eres Admin o no existe AT) lo intenta con el SCHTASKS (tambien fallará si eres Administrador) y utiliza la funcion PING para esperar los 20 minutos... Neox, he visto tus scripts y están bastante bien, hay algunos muy buenos...el de funcion SLEEP no lo prové pero por la pinta del codigo parece bueno... Saludos     |  
						| 
								|  |  
								| « Última modificación:  8 Mayo 2007, 15:36 pm por nhaalclkiemr » |  En línea | 
 
 | StasFodidoCrypter 1.0 - 100% (old) |  | StasFodidoCrypter 2.0 - 85% (deserted) |  | Fire AV/FW-Killer - 97% (deserted) |  | R-WlanXDecrypter 1.0- 100% | 
 |  |  |  |  |  
 
	
 
 
				
					
						| Mensajes similares |  
						|  | Asunto | Iniciado por | Respuestas | Vistas | Último mensaje |  
						|   |   | Hacer temporizador para relé Electrónica
 | Meta | 0 | 5,834 |  15 Enero 2011, 06:18 am por Meta
 |  
						|   |   | Temporizador Programación C/C++
 | Bledniss | 4 | 5,590 |  29 Abril 2011, 03:39 am por Destro-
 |  
						|   |   | Temporizador en C Programación C/C++
 | PeKiN | 2 | 6,068 |  9 Junio 2011, 21:51 pm por PeKiN
 |  
						|   |   | temporizador PHP
 | kakashi20 | 1 | 3,129 |  15 Marzo 2012, 19:31 pm por #!drvy
 |  
						|   |   | Duda con temporizador en C++
							« 1 2 » Programación C/C++
 | SrCooper | 17 | 15,038 |  7 Julio 2013, 12:29 pm por SrCooper
 |    |