1、利用ping命令实现延时,方法巧妙而且可以控制,但精度不高。 如:ping -n 3 127.0.0.1>nul大约可以停顿2秒 -n后的数字是发送包的数目,为暂停秒数加一。此法每秒有0.5%的偏差,时间精度为1秒。 2、用vbs脚本中的sleep实现,样本代码如下: -------------------------------------- @echo off echo Wscript.Sleep Wscript.Arguments(0) * 1000>Delay.vbs Delay.vbs 2 del Delay.vbs echo OK! --------------------------------------- 以上程序代码可以实现暂停2秒,2秒过后回显OK! 3、利用“死”循环:设定一个时间差,如果当前时间与设定时间之差不大于设定之时间差,则不退出该循环,从而达到延时的目的。样本代码: --------------------------------------------------- @echo off set /a Start=%time:~6,2% :ProDelay set /a Now=%time:~6,2% set /a Diff=%Now%-%Start% rem 以下这一句可以防止秒数从59跳到1时产生的错误。 if %Diff% lss 0 set /a Diff=%Diff%+60 if %Diff% leq 2 goto :ProDelay echo ok! --------------------------------------------- 以上程序也可以实现延时2秒的目的。 4、利用at命令。不过此方法与其说是延时,还不如说成定时的好。 5、 @echo off & setlocal enableextensions echo WScript.Sleep 1000 > %temp%.\tmp$$$.vbs set /a i = 5 :Timeout if %i% == 0 goto Next setlocal set /a i = %i% - 1 cls echo DOS倒计时程序:alike收集 echo ################################## echo # # echo # [%i%]秒后程序开始运行 # echo # # echo ################################## cscript //nologo %temp%.\tmp$$$.vbs goto Timeout goto End :Next cls & echo. for %%f in (%temp%.\tmp$$$.vbs*) do del %%f start edit boot.ini exit
正文
批处理实现延时不完全总结
如果转载请出处文章来源,www.shykx.com
还没有评论,来说两句吧...