Programe tareas de Windows cada minuto

13

Necesito programar una tarea de Windows para ejecutar un script cada minuto. En la mayoría de los casos, el script no necesita ejecutar nada y existe de inmediato. Cuando el script necesita ejecutar algo, quiero que comience el trabajo lo más rápido posible, por lo tanto, el intervalo de un minuto.

Ahora, la interfaz de usuario del Programador de Windows se ha vuelto bastante confusa en los últimos años, por lo que no estoy seguro de cuál es la mejor manera de ejecutar una tarea cada minuto (o 5 minutos ...) en Windows 2008 R2.

¿Es esta la mejor manera de programar una tarea en Windows cada minuto? ¿Es confiable? ¿Se inicia directamente después de reiniciar una máquina, o solo se reinicia a las 12 p.m.? Tenga en cuenta que no puedo usar / escribir una aplicación de servicio personalizada para esto, ya que necesito que sea muy portátil.

Dennis G.
fuente
No, no es la mejor manera. Debe usar una función de suspensión o espera en su secuencia de comandos.
Joseph Kern el

Respuestas:

4

Sí, este servicio se ejecutará después del reinicio, puede verificarlo en el registro de transacciones del servicio del Programador de tareas:

    Systemroot \ SchedLgU.txt

    (donde Systemroot es su carpeta de instalación de Windows)

Si no funciona correctamente (en XP, no estoy seguro sobre el equivalente de 2008):

    
    Panel de control -> Herramientas administrativas -> Servicios -> Programador de tareas 

    Establecer en auto. 

Documentación 2008 aquí , Documentación XP aquí

El cronograma de la tarea comienza a la hora especificada, luego se ejecuta en función de los parámetros de repetición. El tiempo de inicio puede considerarse como tiempo de "instalación de tareas", no es parte de los parámetros de repetición (excepto como un desplazamiento del temporizador). Espero que tenga sentido!

Andy
fuente
En realidad, quise decir si la máquina se reinicia, ¿la tarea se vuelve a activar directamente después del reinicio , o solo se inicia nuevamente a las 12 p.m., como se especifica en la GUI? Necesito que la tarea se ejecute cada minuto, independientemente del reinicio de la máquina, etc.
Dennis G.
Y, ¿cómo puedo saber si se ha ejecutado una tarea? ¿Está registrado en algún lugar del Registro de eventos? Parece que no puedo encontrar ninguna entrada de registro. Gracias.
Dennis G.
Respuesta actualizada para aclaraciones
Andy
18

Tenía este mismo requisito. En Server 2008, puede modificar la tarea Repetir cada: menú desplegable. Por defecto, el valor más bajo es "5 minutos" , pero simplemente puede escribir "1 minuto" allí. Puede verificar esto mirando la pestaña Disparadores y viendo que dice "... repita cada 00:01:00 ..." . También puede intentar escribir "10 segundos" y recibirá un error que le indica que elija algo mayor que 1 minuto.

coryvb123
fuente
3
Esta fue la parte de la pregunta que me interesaba. Puedo confirmar que todavía funciona en 2012 R2.
Melikoth
8

Puedo programar una tarea para que se repita una vez por minuto con la línea de comando "schtasks". Un ejemplo del código es:

schtasks / create / sc minute / mo 1 / tn "Nombre de tarea" / tr c: \ temp \ filename.exe

La tarea se muestra en la GUI de Windows 2008 R2 y se ejecuta una vez por minuto. La tarea debe crearse y modificarse con la utilidad de línea de comando "schtasks".

Desafortunadamente, Microsoft diseñó tontamente el programador de tareas de Windows 2008 R2, abandonando la configuración flexible que se encuentra en el Programador de tareas de Windows 2003, a favor de algunas opciones limitadas para los intervalos.

davephan

davephan
fuente
Esto funciona en Win7. Gracias
Vladimir Vukanac
-1

prueba esto, funcionó para mí ...

REM ================================================= ===============

REM # CUERPO PRINCIPAL

REM ================================================= ==============

if "% 1" == "" echo Uso: - C: \ scripts \ port_schtask.cmd ^ ^ &&% SystemRoot% \ system32 \ ping 127.0.0.1 -n 10> nul && exit

si no existe C: \ scripts \ port.bat echo Uso: - El archivo NO existe C: \ scripts \ port.bat &&% SystemRoot% \ system32 \ ping 127.0.0.1 -n 10> nul && exit

% SystemRoot% \ system32 \ schtasks / delete / tn "port.bat% 1% 2" / f

% SystemRoot% \ system32 \ schtasks / create / tr "C: \ scripts \ port.bat% 1% 2" / SC MINUTE / MO 1 / tn "port.bat% 1% 2" / RU "SYSTEM"

% SystemRoot% \ system32 \ SCHTASKS / run / TN "port.bat% 1% 2"

% SystemRoot% \ system32 \ SCHTASKS |% SystemRoot% \ system32 \ find.exe "port.bat% 1% 2"

% SystemRoot% \ system32 \ schtasks / query / TN "port.bat% 1% 2"

% SystemRoot% \ system32 \ ping 127.0.0.1 -n 10> nul

rem ------------------------------------------------- -----

aplausos RJB

RJB
fuente
¿Por qué estás realizando acciones irrelevantes como hacer ping a localhost?
tu-Reinstate Monica-dor duh