Если вам не нужен визуальный обратный отсчет, то есть простое решение с помощью TIMEOUT, который использует <backspace>
(0x08) символ, чтобы расположить номер обратного отсчета, который отображается каждую секунду.
похоже, что число находится в середине строки, но на самом деле вывод имеет последний 0 в качестве последнего символа outptut, либо с пробелом, либо с пробелом. Если пользователь нажимает клавишу, то тайм-аут прерывается и окончательный 0 никогда не выводится.
вы может передать выходные данные в findstr, чтобы проверить, был ли 0 последним выходным числом.
timeout 600 | findstr "[^0-9]0$" >nul && start "" "C:\Program Files\program.exe"
Если вы получаете порт Windows tee, то вы можете получить полу-функционирующий визуальный обратный отсчет, за исключением числа ошибочно появляются в конце сообщения вместо середины.
timeout 600 | tee countdown.txt
findstr "[^0-9]0$" countdown.txt >nul && start "" "C:\Program Files\program.exe"
del countdown.txt