标题: [特效代码] 求助批处理使用退格键实时显示倒数等待时间的秒数 [打印本页]
作者: mokson 时间: 2023-4-22 14:19 标题: 求助批处理使用退格键实时显示倒数等待时间的秒数
- @echo off&setlocal enabledelayedexpansion
- set N=12
- set "BS="
- :RP
- rem 使用退格键,实时显示倒数等待时间的秒数
- for /L %%K in (!N! -1 0) do (
- set /p "=%%K/!N!"<nul
- timeout /T 1 /nobreak >nul
- set /p "=%BS%"<nul
- )
- pause>nul
- goto RP
复制代码
运行后,当秒数为个位数时,最右边的数删除不了,有残留。
不知道如何解决,希望师兄指点。
作者: mokson 时间: 2023-4-22 14:24
我目前是用:当倒数为个位数时,在前面补0的方法。
但当总时间数是三位数时,又要补00,不是最好的方法,
希望有一个万全的方法,希望得到大家的指点。
作者: hnfeng 时间: 2023-4-22 14:34
运行后,当秒数为个位数时,最右边的数删除不了,有残留。
不知道如何解决,希望师兄指点。
mokson 发表于 2023-4-22 14:19
- @echo off&setlocal enabledelayedexpansion
- set N=12
- set "BS="
- :RP
- rem 使用退格键,实时显示倒数等待时间的秒数
- for /L %%K in (!N! -1 0) do (
- set /p "=%%K/!N! "<nul
- timeout /T 1 /nobreak >nul
- set /p "=%BS%"<nul
- )
- pause>nul
- goto RP
复制代码
作者: dos-a 时间: 2023-4-22 19:34
回复 1# mokson
你可以试试这个
https://learn.microsoft.com/zh-c ... rnate-screen-buffer
比如:
@echo off
:1
set /a q+=1
echo %q%
echo;esc[2A
goto 1
作者: hfxiang 时间: 2023-4-23 11:37
回复 1# mokson
试试这个- @echo off
- rem 实时显示99999秒之内的倒数等待
- set N=12
- set "BS="
- for /L %%K in (%N% -1 0) do (
- set /p "=%%K/%N% %BS%"<nul
- timeout /T 1 /nobreak >nul
- )
复制代码
作者: mokson 时间: 2023-4-23 14:30
回复 3# hnfeng
成功达到想要的效果,
非常感谢你的帮助!
作者: mokson 时间: 2023-4-23 14:32
回复 5# hfxiang
非常感谢,也达到了如期的效果,代码更简单明了。
三克油!
作者: aloha20200628 时间: 2023-4-23 18:55
“退格长度根据等待秒数位长自动调整”的代码说明》
1. 命令行参数可以指定一个等待秒数,否则默认=12
2. 退格长度计算公式=2*(秒数位长+1) 对应楼主预定的显示格式》秒数位长/秒数位长
- @echo off
- if "%~1" == "" (set "n=12") else set "n=%~1"
- ::获取秒数位长
- set/p="%n%"<nul>"0.0"&for %%F in ("0.0") do (set/a "m=%%~zF,bsL=2*(m+1)")
- (del/q "0.0")&setlocal enabledelayedexpansion
- for /L %%k in (1,1,%bsL%) do (set "bs=!bs!")
- for /L %%k in (%n%,-1,0) do (
- set/p"=%%k/%n% !bs!"<nul
- timeout /t 1 >nul
- )
- endlocal&exit/b
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |