Ms-Dos - ayuda con tarea programada en ms-dos

 
Vista:

ayuda con tarea programada en ms-dos

Publicado por JGodoy (1 intervención) el 27/08/2011 01:04:09
hola a todos estoy tratando de hacer una tarea programada con el comando AT, pero lo que quiero es que al momento que ejecute el batch el tiempo para realizar la tarea sea en un tiempo determinado..... por ejemplo que se ejecute en 30 minutos luego de ejecutar el batc.... saludos y espero que me ayuden....
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

ayuda con tarea programada en ms-dos

Publicado por Jack (3 intervenciones) el 30/10/2011 09:46:30
Para eso necesitas, hacer ke una parte del BAT se encargue de calcular la HORA...

Eso justamente yo lo hize hace unos meses.. y es algo asi;

Se da la hora a una variable de TEXTO...
set timetemp=%time%

Se separan las horas, los minutos, segundos y milisegundos...
set thr=%timetemp:~0,2%
set tmin=%timetemp:~3,2%
set tseg=%timetemp:~6,2%
set tmseg=%time:~9,2%

Se quitan las ekivalencias ke producen errores...
if "%thr%"=="08" set /a hr=8
if "%tmin%"=="08" set /a min=8
if "%tseg%"=="08" set /a seg=8
if "%tmseg%"=="08" set /a mseg=8
if "%thr%"=="09" set /a hr=9
if "%tmin%"=="09" set /a min=9
if "%tseg%"=="09" set /a seg=9
if "%tmseg%"=="09" set /a mseg=9

Se convierten las horas, minutos y segundos en milisegundos...
set /a hr*=60*60*60
set /a min*=60*60
set /a seg*=60

Se suman todos los milisegundos y se ESCRIBE LA CANTIDAD DE TIEMPO KE AUMENTARA...
set /a allmseg=%hr%+%min%+%seg%+%mseg%
set /a allmseg=%hr%+%min%+%seg%+%mseg%+18000

Se convierte todo nuevamente a Horas, minutos, segundos y milisegundos....
set /a hr=%allmseg%/60/60/60
set /a tempms=%hr%*60*60*60
set /a allmseg-=%tempms%
set /a min=%allmseg%/60/60
set /a tempms=%min%*60*60
set /a allmseg-=%tempms%
set /a seg=%allmseg%/60
set /a tempms=%seg%*60
set /a allmseg-=%tempms%
set /a mseg=%allmseg%

Por si el resultado es mayor a 24 horas, se convierte a CEROS... "00;01am"
if %hr% GEQ 24 set /a hr-=24

Para no hacertela de largo...
Lo ke hace el programa es dividir toda la hora, y convertirla en milisegundos, despues en donde dice; "18000" pones la cantidad de MILISEGUNDOS ke son 30 minutos...

5min = 18,000 milisegundos
30min = 108,000 milisegundos

30min * 60 segundos * 60 milisegundos = 108,000 milisegundos


El programa suma los milisegundos ke introduces y despues convierte los milisegundos totales en Hora, minuto, segundo y milisegundo...

es decir ke si la DATA entrante es; "12;20;00.0pm" el programa resultara en "12;50;00.0pm"

Por ultimo escribes el comando AT con el resultado de las operaciones anteriores...
at %hr%:%min%:%seg%.%mseg% /interactive "RUTA Y NOMBRE DE TU ARCHIVO A EJECUTAR"
exit

Y listo!... xD

Espero no te confundas... y no modifikes ni un espacio o signo en el primer script, o cambiaras los resultados y te converitra todo mal...

Al fin, si kieres borrar la TAREA creada, solo dirigete a Tareas programadas y borras el llamado "at?.job"


PD; El batch ke yo hize era muy distinto, y esta parte era la ke encajaba con lo ke kerias hacer...

PD; Espero entiendas lo ke escribi, y te funcione... de no ser asi, al rato me paso y te explico...xD
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

ayuda con tarea programada en ms-dos

Publicado por Marcelo (2 intervenciones) el 19/03/2012 17:26:21
Hola que tal, necesito hacer el mismo procedimiento pero para que la tarea se ejecute
unos segundos depues de ejecutar el bat.
Me podrías pasar el codigo de como quedaría, te lo agradeceria mucho!!
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