A maneira como fiz isso é executar a tarefa a partir de um arquivo em lotes que é iniciado uma vez por dia logo após a meia-noite e é executado até a meia-noite seguinte. A vantagem disso é que, como é um script único, você não consegue executar uma segunda instância. Eu suponho que uma desvantagem pode ser que você pode prever exatamente com que frequência o script é executado porque ele esperaria um tempo definido após cada execução. De qualquer forma, se você está interessado meu script parece:
rem *** Get the day number. When the day number changes that signals
rem *** the script to exit.
for /f "tokens=1" %%i in ('date /t') do set THEDATE=%%i
set THEDAY=%THEDATE:~0,2%
rem *** Open the log file
echo Starting Whatever >%LOGFILE%
date /t >>%LOGFILE%
echo . >>%LOGFILE%
rem *** Start the monitoring loop
:start
rem *** Run your script
rem Run the script here
rem *** Pause for 300 seconds
sleep 300
rem *** Check the day number. If it is still the same loop back to the
rem *** start of the monitoring loop.
for /f "tokens=1" %%i in ('date /t') do set THEDATE=%%i
if %THEDATE:~0,2% == %THEDAY% goto start
JR