当前位置: 首页 > 图文教程 > 脚本技术 > DOS/BAT > 批处理 延时不完全总结

DOS/BAT
每天按时 重启服务器 的批处理
Netsh 命令备份和恢复网络设置
批处理 Set 命令详解 让你理解set命令
cd命令 目录跳转
cmd tree命令 以树形格式罗列文件
dos 内容重定向符 >和>>
cmd if条件 条件判断
cmd goto命令 流程跳转
cmd copy命令 文件复制
cmd del命令 文件删除
cmd ren命令 重命名文件(夹)
cmd md命令 创建文件夹
cmd rd命令 删除文件夹
cmd move命令 移动文件(夹)
字符串查找 cmd find命令
常用的批处理实用技巧
批处理 添加隐藏用户代码
服务器 安全设置 批处理
WIN2003 服务器安全配置批处理文件
批处理 实现定时关机、注销、重启、锁定等功能

DOS/BAT 中的 批处理 延时不完全总结


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-11   浏览: 83 ::
收藏到网摘: n/a

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