我实际上想用批处理程序创建一个计时器,在运行代码时输出并不是我想要的样子。屏幕继续闪烁而不减少秒数。有人能帮帮我吗?非常感谢。
@echo off
set countdown=10
:loop
if %countdown% == 0 goto end
cls
echo %countdown%
timeout /t 1 /NOBREAK
set/a count=%countdown%-1
goto loop
:end
cls
echo Time's up!
pause
我实际上想用批处理程序创建一个计时器,在运行代码时输出并不是我想要的样子。屏幕继续闪烁而不减少秒数。有人能帮帮我吗?非常感谢。
@echo off
set countdown=10
:loop
if %countdown% == 0 goto end
cls
echo %countdown%
timeout /t 1 /NOBREAK
set/a count=%countdown%-1
goto loop
:end
cls
echo Time's up!
pause
您应该将这一行 set/a count=%countdown%-1
替换为以下内容之一:set /a countdown=countdown-1
或者是缩写版的 set /a countdown-=1
。
@echo off
set "countdown=10"
:loop
if "%countdown%" EQU "0" goto end
cls
echo %countdown%
set /a countdown-=1
timeout /t 1 /NOBREAK>nul
goto loop
:end
cls
echo Time's up!
pause
@echo off
Set count=10
Setlocal enableDelayedExpansion
For /L %%a in (1,1,!count!) DO (
Set /a count=!count! - 1
(ECHO <esc>[1;1H<esc>[K!count!)
(
TIMEOUT 1 >nul
)
)
ECHO times up!
pause
<esc>[1;1H<esc>[K
设置文本的位置(行;列),并从该点开始清除该行。 <esc>
代表 ANSI 转义字符。
使用 ANSI 光标定位允许您有选择地刷新屏幕上的文本,而无需清除整个屏幕。