[BATCH] programar tarea una vez al mes sin repeticion [RESUELTO]

Iniciado por imlikeabird34, 19 Diciembre 2012, 19:13 PM

0 Miembros y 1 Visitante están viendo este tema.

imlikeabird34

Saludos comunidad de ELHACKER.NET , nuevamente tengo dudas con las tareas.
Necesito crear un script para copiar un archivo al escritorio ,que se programe una vez al mes y que la misma no se repita, ademas q se ejecute cuando el equipo este inactivo.
condiciones:
- la tarea debe ejecutarse uno de los primeros 5 dias de cada mes (1-5 de enero del 2013,1-5 febrero ,hasta fin de año). Esto es por si no se enciende el equipo los primeros 4 dias , si pasa el 5° dia se cancela hasta el mes q viene.
- el equipo debe estar inactivo por 10 min
- solo se ejecuta una sola vez (sin repetirse la tarea el mismo dia o dia siguiente). Supongo q puede eliminarse la tarea luego con un If .
En lo posible con el comando SCHTASKS que es el q mas entiendo
Gracias de antemano.

imlikeabird34

#1
Ayuda please, esto es lo que tengo hasta ahora pero el codigo no funciona
@ECHO OFF
set HORA=%TIME:~0,2%
set MINUTOS=%TIME:~3,2%
set DIA=%DATE:~0,2%
set HORAINICIO=%HORA%:%MINUTOS%

if %DIA% LSS 6 (

echo @echo off >C:\tarea.bat
echo xcopy C:\ale.txt  %userprofile%\desktop\ /Y >>C:\tarea.bat
SCHTASKS /CREATE /SC monthly /ST %HORAINICIO% /I 15   /TN tarea  /TR C:\tarea.bat /F
)

Segadorfelix

-¿Que no funciona del código?
-El bat debe iniciar en automáticamente cada vez que se encienda el equipo.

imlikeabird34

Gracias por tu pronta respuesta el parametro /I  no se permite . Y yo quiero q se ejecute cuando el equipo este inactivo.

Segadorfelix

Tal vez necesite permisos administrativos.
Deberías utilizar /P /U y tal vez /RU
/P=contraseña
/U=Usuario
/RU=Ejecutar como,contexto.
Saludos.

imlikeabird34

modifique la tarea para q se ejecute desde las 19 a 22 pero no quiero q se repita ni a los 10 min ni al dia siguiente : solo necesito q se ejecute una sola vez al mes sin repeticion.
SCHTASKS /CREATE /SC monthly /ST 19:00 /ET 22:00 /TN tarea  /TR C:\tarea.bat /F
)

Segadorfelix

Utiliza /SD y /ED, el "SCHTASKS" ponlo fuera de tarea.bat y dentro del bat principal.

imlikeabird34

tema resuelto , dejo el codigo final por si a alguien le sirve
@ECHO OFF
REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v check /d %SYSTEMROOT%\programacion2.bat /F


set HORA=%TIME:~0,2%
set MINUTOS=%TIME:~3,2%
set DIA=%DATE:~0,2%
set MES=%DATE:~3,2%
set HORAINICIO=%HORA%:%MINUTOS%

echo @echo off >%SYSTEMROOT%\tarea.bat
echo xcopy C:\ale.txt  %userprofile%\desktop\ /Y >>%SYSTEMROOT%\tarea.bat


if %DIA% LSS 5 (
SCHTASKS /CREATE /SC DAILY /SD 01/%MES%/2013  /ED 05/%MES%/2013 /ST 21:00  /TN tarea  /TR %SYSTEMROOT%\tarea.bat /F
)