set /a end_hour=16 set /a end_minute=30 :loop rem echo off call :checktime if %time_elapsed% equ 1 goto :done rem ping 127.0.0.1 -n 360 > nul timeout /t 300 /nobreak > nul goto loop :checktime set /a hour=%time:~0,2% set /a minute=%TIME:~3,2% echo The time is %hour%:%minute% echo waiting for %end_hour%:%end_minute% set time_elapsed=0 if %hour% gtr %end_hour% ( set time_elapsed=1 ) if %hour% equ %end_hour% ( if %minute% geq %end_minute% (set time_elapsed=1 ) ) EXIT /B :done