Dê este um tiro , eu não tenho tempo para construir um para fazer isso de outra maneira, mas isso deve ser suficiente, suponho. . .
Observe que no for /l %%N in (30
o número aqui é a quantidade de segundos a aguardar, por isso é 30
por 30 segundos.
@echo off setlocal enableDelayedExpansion for /l %%N in (30 -1 1) do ( set /a "min=%%N/60, sec=%%N%%60, n-=1" if !sec! lss 10 set sec=0!sec! cls choice /c:CN1 /n /m "Restart in !min!:!sec! - Press N to Restart Now, or C to Cancel. " /t:1 /d:1 if not errorlevel 3 goto :break ) cls echo RESTART in 0:00 - Press N to Restart Now, or C to Cancel. :break if errorlevel 2 (shutdown /r /t 10) else echo restart Canceled