bat延时100ms_bat延时

本文详细介绍了在BAT批处理脚本中实现延时的多种方法,包括利用for+set+if计算时间差、VBS脚本的Sleep函数、ping命令、choice命令的缺省选择等待以及ASCII汇编代码等。每种方法的时间精度、适用平台和优缺点都有所不同,例如VBS脚本精度最高但内存占用多,ping命令适用于长时间延时但误差可能较大。
摘要由CSDN通过智能技术生成

1、暂停(Pause)、延迟(Delay)、等待(Wait)、睡眠(Sleep)

1)for+set+if,时间精度为0.01秒,适用平台为WinNT/2K/XP/2003。

利用for解析变量%time%并存为两个时间点%start%和%now%,再利用set /a计算两个时间点的时间差,最后用if判断时间差是否达到设定的暂停时间。

@echo off

setlocal enableextensions

echo %time%

call :ProcDelay 200

echo %time%

goto :EOF

:ProcDelay delayMSec_

setlocal enableextensions

for /f "tokens=1-4 delims=:. " %%h in ("%time%") do set start_=%%h%%i%%j%%k

:_procwaitloop

for /f "tokens=1-4 delims=:. " %%h in ("%time%") do set now_=%%h%%i%%j%%k

set /a diff_=%now_%-%start_%

if %diff_% LSS %1 goto _procwaitloop

endlocal & goto :EOF

2)VBS脚本中的sleep函数,时间精度为0.001秒,使用平台为Win9x/WinNT系列。

动态创建一个调用sleep()函数的VBS脚本,然后用Windows脚本宿主的命令行版本cscript调用它。

@echo off & setlocal enableextensions enabledelayedexpansion

echo WScript.Sleep 2000 > %temp%\tmp$$$.vbs

echo %time%

cscript //nologo %temp%\tmp$$$.vbs

echo %time%

for %%f in (%temp%\tmp$$$.vbs) do if exist %%f del %%f

endlocal & goto :EOF

3)ping的消息发送间隔,时间精度为1秒,使用平台为Win9x/WinNT系列。

需要你的Windows系统中正常安装了网卡的TCP/IP协议,有两种方案:

(1) 利用ping两次发送消息之间的间隔时间。ping在发送多个消息时,在得到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值