我正在尝试创建一个批处理计时器,该计时器不会清除其上方的输出。
我创建了一个计时器函数,但我希望对其进行改进,以便我仍然可以查看其上方的输出,而无需在输出中出现倒计时行。我当前的功能是:
@echo off
echo KEEP THIS OUTPUT
CALL :timer 10
rem Do more things...
EXIT
:Timer
set time=%~1
:loop
cls
echo Countdown - [%time%]
set /a time=%time%-1
if %time%==0 goto timesup
ping localhost -n 2 > nul
goto loop
:timesup
echo Timer completed!!
EXIT /B 0
目前,计时器会清除屏幕,但我想这样做,以便保留该计时器上方的输出。
例如,在 10 秒时,输出应为:
KEEP THIS OUTPUT
Countdown - [10]
然后输出应更改为:
KEEP THIS OUTPUT
Countdown - [9]
输出不应该是:
KEEP THIS OUTPUT
Countdown - [10]
Countdown - [9]
并且不应该是:
Countdown - [9]
有什么办法可以做到这一点吗?
可以使用特殊字符、回车符或退格键来完成。
回车将光标移回行首。
但要与Countdown
文本,你不能使用echo
命令,因为它总是附加换行符。
相反,我使用set /p
命令来避免这种情况。
@Echo off
setlocal EnableDelayedExpansion
for /F %%# in ('copy /Z "%~dpf0" NUL') do set "CR=%%#"
for /L %%n in (10 -1 0) do (
<nul set /p ".=Countdown[%%n] !CR!"
ping localhost -n 2 > nul
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)