bat脚本计时器,bat设置等待时间
1、前言
bat设置等待时间的方法挺多的,查了一下也有比较简单的,如向本地ip发包。但是发现这个时间不太精确,所以自己写了一个bat脚本计时器,可以自己设置等待时间,这样在编写bat脚本的时候非常方便的去设置一个代码执行的等待时间。
思路:获取本地系统的时间(秒),通过操作本地时间(秒)实时输出时间差来达到一个等待的目的。
2、问题
编写完成后遇到两个问题:
- 能力所限解决不了这两个问题;
- 非常欢迎各位大哥留言,希望提供一些建议,非常感谢;
- 获取系统时间:时间/秒==0时,第0秒对应的等待时间显示:ECHO 处于关闭状态,预期结果应该是打印此刻对应的时间;
- 获取系统时间:7s < 时间/秒 < 10s时,有错误信息提示,提示内容是:无效数字。数字常数只能是十进制(17),十六进制(0x11)或八进制(021);
3、脚本内容
::bat计时器,设置等待n秒再执行下面命令
:: 设置打印关闭
@echo off
::设置等待时长(计时器长度/秒),需要自己配置
set /a waitTime=120
::计时器内容如下:
set /a getSysS=%time:~6,2%
set /a count=0
set /a judge=-1
set /a remS=-1
::开始
:start
set /a saveSysS=%time:~6,2%
set /a countS=60*%count%+%saveSysS%
set /a showS=%countS%-%getSysS%
if %saveSysS% equ 0 (
if %judge% equ 1 (
set /a count=%count%+1
if %remS% neq %showS% (
cls
set /a showS1=%remS%+1
echo %showS1%
set /a remS=%showS%
)
set /a judge=0
)
) else (
if %saveSysS% equ 59 (
set /a judge=1
)
if %remS% neq %showS% (
if %saveSysS% equ 0 (
cls
set /a showS1=%remS%+1
echo %showS1%
) else (
cls
echo %showS%
)
set /a remS=%showS%
)
)
::超时结束计时器
if %showS% lss %waitTime% (
goto start
)
pause