Come posso creare un timer di file batch per eseguire / chiamare un altro batch durante il giorno

Come posso creare un timer di file batch per eseguire / chiamare un altro batch durante tutto il giorno Forse in determinati orari per essere eseguito ma non per funzionare nei fine settimana? Deve essere eseguito sugli orari di sistema può anche essere .cmd per essere eseguito su xp server 2003

Per la parte timer del tuo script consiglio vivamente di utilizzare:

echo. echo Waiting For One Hour... TIMEOUT /T 3600 /NOBREAK echo. echo (Put some Other Processes Here) echo. pause >nul 

Questo script attende 1 ora (3600 secondi) e quindi continua con lo script e l’utente non può premere alcun pulsante per ignorare il timer (oltre a CTRL + C).

Puoi usare

 Timeout /t 3600 /nobreak >nul 

Se non vuoi vedere un conto alla rovescia sullo schermo.

Vorrei usare lo scheduler (pannello di controllo) piuttosto che una linea di cmd o un’altra applicazione.

Pannello di controllo -> Attività pianificate

Di seguito è riportato un file batch che attenderà per 1 minuto, controllerà il giorno e quindi eseguirà un’azione. Utilizza PING.EXE, ma non richiede file non inclusi in Windows.

 @ECHO OFF :LOOP ECHO Waiting for 1 minute... PING -n 60 127.0.0.1>nul IF %DATE:~0,3%==Mon CALL SomeOtherFile.cmd IF %DATE:~0,3%==Tue CALL SomeOtherFile.cmd IF %DATE:~0,3%==Wed CALL SomeOtherFile.cmd IF %DATE:~0,3%==Thu CALL WootSomeOtherFile.cmd IF %DATE:~0,3%==Fri CALL SomeOtherFile.cmd IF %DATE:~0,3%==Sat ECHO Saturday...nothing to do. IF %DATE:~0,3%==Sun ECHO Sunday...nothing to do. GOTO LOOP 

Potrebbe essere migliorato in molti modi, ma potrebbe farti iniziare.

Il comando AT lo farebbe ma questo è ciò che la GUI di Scheduled Tasks è per. Inserisci “help in” in una finestra di cmd per i dettagli.

L’ho fatto scrivendo una piccola app C # che si triggers solo per avviare attività periodiche – non so se è ansible farlo da un file batch senza scaricare estensioni per supportare un comando di sospensione. (Per i miei scopi, l’utilità di pianificazione di Windows non ha funzionato perché le app avviate non avevano un contesto grafico disponibile).

 @echo off :Start title timer color EC echo Type in an amount of time (Seconds) set /p time= color CE :loop cls ping localhost -n 2 >nul set /a time=%time%-1 echo %time% if %time% EQU 0 goto Timesup goto loop :Timesup title Time Is Up! ping localhost -n 2 >nul ping localhost -n 2 >nul cls echo The Time is up! pause cls echo Thank you for using this software. pause goto Web goto Exit :Web rem type ur command here :Exit Exit goto Exit 
 @echo off :Start # seting a ponter title timer #name the cmd window to "Timer" echo Type in an amount of time (Seconds) set /p A= #wating for input from user set B=1 cls :loop ping localhost -n 2 >nul #pinging your self for 1 second set /AA=AB #sets the value A - 1 echo %A% # printing A if %A% EQU 0 goto Timesup #if A = 0 go to ponter Timesup eles loop it goto loop :Timesup #ponter Timesup cls #clear the screen MSG * /v "time Is Up!" #makes a pop up saying "time Is Up!" goto Exit #go to exit :Exit 

Potresti anche farlo>

 @echo off :loop set a=60 set /a a-1 if a GTR 1 ( echo %a% minutes remaining... timeout /t 60 /nobreak >nul goto a ) else if a LSS 1 goto finished :finished ::code ::code ::code pause>nul 

O qualcosa di simile.