本文作者:爱分享吧

批处理实现延时不完全总结

爱分享吧 2年前 ( 2017-10-27 ) 1284 抢沙发
批处理实现延时不完全总结摘要: 1、利用ping命令实现延时,方法巧妙而且可以控制,但精度不高。 如:ping -n 3 127.0.0.1>nul大约可以停顿2...
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


文章版权及转载声明:

作者:爱分享吧本文地址:https://www.shykx.com/Lot/24.html发布于 2年前 ( 2017-10-27 )
文章转载或复制请以超链接形式并注明出处爱分享吧|软件分享平台

分享到:
赞(0

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

发表评论

快捷回复:

评论列表 (暂无评论,1284人围观)参与讨论

还没有评论,来说两句吧...