it-swarm-es.tech

¿Programar un trabajo desde la línea de comandos de Windows?

En Linux hay cron trabajo y at trabajo. ¿Hay alguna forma de programar un trabajo desde la línea de comandos en Windows?

El Programador de tareas GUI no es lo que busco. Debo modificar un script para programar un evento en una determinada condición ... por lo que debe haber una forma de llamar a esto desde la línea de comandos.

15
demetri

Windows también tiene un "en el trabajo". Aunque la sintaxis es un poco diferente.

C:\Documents and Settings\Administrador> en /?
El comando AT programa los comandos y programas para que se ejecuten en una computadora a las 
 Una fecha y hora específicas. El servicio Schedule debe estar ejecutándose para usar 
 El comando AT. 
 
 AT [\\ computername] [[id] [/ DELETE] |/DELETE [/YES]]
AT [\\ computername] time [/INTERACTIVE]
 [/ EVERY: date [ ...] |/NEXT: date [ ... ]] "comando" 
 
 \\ computername Especifica una computadora remota. Los comandos se programan en la computadora local 
 si se omite este parámetro. 
 id Es una identificación número asignado a un comando programado 
. 
/delete Cancela un comando programado. Si se omite el id, se cancelan todos los comandos programados 
 en la computadora. 
/sí Se utiliza con el comando cancelar todos los trabajos cuando no se desea más confirmación de 
. 
 tiempo Especifica la hora a la que se ejecutará el comando. 
/Interactivo Permite que el trabajo interactúe con el escritorio del usuario 
 Que está conectado en el momento en que se ejecuta el trabajo. 
/Cada : fecha [ ...] Ejecuta el comando en cada día (s) especificado de la semana o 
 mes. Si se omite la fecha, se asume el día actual del mes 
. 
/Siguiente: fecha [ ...] Ejecuta el comando especificado en la siguiente aparición del día 
 (por ejemplo, el próximo jueves). Si se omite la fecha, se asume el 
 Día actual del mes. 
 "Comando" Es el comando de Windows NT o el programa por lotes que se ejecutará.

Ejemplo:

at 9:00 /interactive notepad.exe

Esto hará que Bloc de notas se abra interactivamente para el usuario a las 9:00 de la mañana.

13
John T

Utilice el comando schtasks . Tiene más opciones que el comando at y algunas buenas como /mo LASTDAY para el último día del mes:

schtasks programa comandos y programas para que se ejecuten periódicamente o en un momento específico. Agrega y elimina tareas de la programación, inicia y detiene tareas a pedido y muestra y cambia las tareas programadas.

Sintaxis:

 schtasks/create/tn TaskName/tr TaskRun/sc schedule [/ mo modifier] 
 [/ d day] [/ m month [ month ...] [/ i IdleTime] [/ st StartTime] 
 [/ sd StartDate] [/ ed EndDate] [/ s computadora [/ u 
 [dominio \] usuario/p contraseña]] 
 [/ ru {[ Dominio \] Usuario | "Sistema"} [/ rp Contraseña]] /? 
15
splattne

Escriba un script de Windows Shell para hacerlo usando un programa de suspensión para retrasar:

@echo off

:loop
someprogram args
sleep 900
if somecondition goto loop

Ejecútelo en una ventana de Shell propia. Configure cmd.exe para que se ejecute al encenderlo con este script. sleep duerme durante unos segundos:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <Windows.h>

int main(int argc, char* argv[])
{
    int n = atoi(argv[1]);

    Sleep(n * 1000);

    return 0;
}
1
Henrik