Comment créer un minuteur de fichier batch pour exécuter/appeler un autre lot toute la journée Peut-être à des heures précises pour s'exécuter mais pas pour le week-end? .Cmd doit également être exécuté aux heures système pour être exécuté sur un serveur xp 2003
Pour la partie minuterie de votre script, je vous recommande vivement d'utiliser:
echo.
echo Waiting For One Hour...
TIMEOUT /T 3600 /NOBREAK
echo.
echo (Put some Other Processes Here)
echo.
pause >nul
Ce script attend pendant 1 heure (3600 secondes), puis continue avec le script et l'utilisateur ne peut appuyer sur aucun bouton pour contourner le temporisateur (outre CTRL + C).
Vous pouvez utiliser
Timeout /t 3600 /nobreak >nul
Si vous ne voulez pas voir un compte à rebours à l'écran.
J'utiliserais le planificateur (panneau de configuration) plutôt qu'une ligne de commande ou une autre application.
Panneau de configuration -> tâches planifiées
Vous trouverez ci-dessous un fichier de commandes qui attend 1 minute, vérifie le jour puis effectue une action. Il utilise PING.EXE, mais ne nécessite aucun fichier non fourni avec 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
Il pourrait être amélioré de plusieurs façons, mais cela pourrait vous aider à démarrer.
La commande AT ferait cela, mais c'est à cela que sert l'interface graphique des tâches planifiées. Entrez "help at" dans une fenêtre de commande pour plus de détails.
@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
Je l'ai fait en écrivant une petite application C # qui se réveille juste pour lancer des tâches périodiques - je ne sais pas si c'est faisable à partir d'un fichier batch sans télécharger des extensions pour prendre en charge une commande de veille. (Pour ce faire, le planificateur Windows ne fonctionnait pas car les applications lancées n'avaient pas de contexte graphique disponible.)
@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 /A A=A-B #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
Vous pouvez aussi faire ça>
@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
Ou quelque chose comme ça.