Crear tarea con schtasks que se ejecute por días a contar de %date%

Necesito programar un bat que programe una tarea pasado 45 días a contar de hoy, estoy utilizando el siguiente comando

schtasks /create /TN nom /TR "cmd /c 'msg * hacer seguimiento a remesa %nom% " /SC ONCE /ST 18:14 /SD %date%+45dias  /F

Pero no he podido averiguar como hacer que /sd me cuente 45 días desde hoy en adelante

Otro problema que tengo es que el nombre de la tarea R1 debe ser variable la cual estará definida por cada vez que se ejecute el programa y al parecer el comando no admite variables dentro de sus definiciones

1 Respuesta

Respuesta

Creo que no he utilizado nunca ese comando porque las pocas veces que he programado tareas lo he hecho con el programador de tareas del sistema o con el comando AT que por lo que he visto se considera obsoleto. De todas formas lo he estado mirando y me da la impresión de que el parámetro SD solo admite fechas en formato "regional", en nuestro caso (Español internacional) dd/mm/aaaa. Por tanto el problema se traslada a como calcular una fecha NN días posterior a la fecha actual. Creo que este BAT resuelve el problema:

@echo off
Echo Hoy es: %date%
set /a NN=45
call :dias %date%
set /a j+=%NN%
call :inc %j%
echo Y dentro de %NN% d¡as ser : %dd%/%mm%/%yy%
goto :EOF
:dias
for /f "tokens=1,2,3 delims=-/." %%a in ("%1") do (
   set dd=%%a&set mm=%%b&set yy=%%c)
set /a dd=100%dd%%%100,mm=100%mm%%%100
set /a z=14-mm,z/=12,y=yy-z,m=mm+12*z-3,j=153*m+2
set /a j=j/5+dd+y*365+y/4-y/100+y/400-719469
goto :EOF
:inc
set /a a=%1+719468,b=4*a+3,b/=146097,c=-b*146097,c/=4,c+=a
set /a d=4*c+3,d/=1461,e=-1461*d,e/=4,e+=c,m=5*e+2,m/=153,dd=153*m+2,dd/=5
set /a dd=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*100+d+m/10
(if %mm% LSS 10 set mm=0%mm%)&(if %dd% LSS 10 set dd=0%dd%)
goto :EOF

Los complejos cálculos para reducir la fecha a un número (creo recordar que de días transcurridos desde el 01/01/1970) y a la inversa, traducir ese número en fecha, se los debo a José Manuel Tella Llop que en tiempos tuvo una página (http://multingles.net/docs/jmt) que me ayudó mucho. Posteriormente encontré en http://www.commandline.co.uk/cmdfuncs/dandt/#datetodays muchas rutinas para tratar con comandos BAT cualquier problema de fechas y horas. Pero hay que tener cuidado con el formato "regional" para evitar sorpresas. Si tu formato regional de fecha (veo que estás en Chile, pero no sé que formato se usa ahí) no fuera dd/mm/aaaa habría que retocar el BAT anterior para adaptarlo a ese formato.

En tu caso concreto te aconsejo que pruebes el BAT anterior para comprobar que funciona correctamente. Una vez comprobado incluyes lo que necesites en el BAT que va a lanzar el comando SCHTASKS. Si tienes algún problema dímelo e intentaré resolvértelo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas