ayuda con tarea programada en ms-dos
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