如何以min:sec格式创建批处理文件倒数计时器,该格式使用变量作为结束时间并使用当前时间作为开始时间?

时间:2014-04-16 07:31:46

标签: variables batch-file timer

我正在尝试创建一个倒数计时器,该计时器采用minsec格式,该格式使用从文本文档中获取的变量并将其用作完成时间并使用当前时间(时间为.bat已启动)作为开始时间。 目前我有这个代码可以工作并从文本文档中获取时间,但我似乎无法弄清楚如何使用它来工作。

代码:

@echo off

set CurrentTime=%time:~0,2%.%time:~3,2%

set /p StartTime=<"ResponseTime.txt"

echo.

echo %CurrentTime% %StartTIme%

echo.

3 个答案:

答案 0 :(得分:3)

@echo off
setlocal

rem Get end time
REM for /F "tokens=1,2 delims=:" %%a in ("ResponseTime.txt") do set /A endH=10%%a%%100, endM=1%%b%%100

REM Just for testing:
set endH=14
set endM=58

title Timer
mode con cols=16 lines=2

:synchronize
for /F "tokens=1,2 delims=:" %%a in ("%time%") do set /A "minutes=(endH*60+endM)-(%%a*60+1%%b-100)-1, seconds=159"

:wait
timeout /T 1 /NOBREAK > NUL
echo Timer:  %minutes%:%seconds:~-2%
set /A seconds-=1
if %seconds% geq 100 goto wait
set /A minutes-=1, seconds=159, minMOD5=minutes %% 5
if %minutes% lss 0 goto :buzz
if %minMOD5% equ 0 goto synchronize
goto wait

:buzz
pause

答案 1 :(得分:1)

我要做的是创建一个timeout函数,例如timeout /t xx,其中xx等于以秒为单位的时间。如果那就是你要找的东西。

您也可以执行timeout /t xx >nul,这样就不会显示一条消息,说明您还剩多少秒。如果这是你想要的,那么使用我展示的第一个。我希望这有帮助

答案 2 :(得分:0)

完美无缺

@echo off

超时/ t 10&gt; NUL 启动chrome&#34; https://google.com&#34;