Windows下cmd-bat批处理命令延迟方法

本文介绍了在Windows批处理(cmd/bat)中实现命令延迟的五种方法,包括使用ping、vbscript、choice以及for+set+if等。不同方法具有不同的精度和资源占用特性,例如ping方法精度较低但无需额外文件,而vbscript方法精度高但会产生临时文件。这些技巧对于批处理脚本的编写和流程控制具有实用价值。
摘要由CSDN通过智能技术生成

Windows下cmd-bat批处理命令延迟方法

转载原地址:https://blog.csdn.net/jk110333/article/details/41869053

方法一:ping
缺点:时间精度为1秒,不够精确

@echo off
@ping 127.0.0.1 -n 6 >nul
start gdh.txt

方法二:vbs start /wait
缺点:生成临时文件
优点点:时间精度为0.001秒,精度高

@echo off
echo wscript.sleep 5000>sleep.vbs
start /wait sleep.vbs
start gdh.txt
del /f /s /q sleep.vbs

方法3:vbs cscript
@echo off
echo wscript.sleep 5000>sleep.vbs
@cscript sleep.vbs >nul
start gdh.txt
del /f /s /q sleep.vbs

方法四:choice
优点:时间精确,CPU占用低,是最佳选择

@echo off
choice /t 5 /d y /n >nul
start gdh.txt

方法五:for+set+if,时间精度为0.01秒
缺点:CPU占用高,语句过长,不常用

@echo off
setlocal enableextensions
echo %time%
call :ProcDelay 500
echo %time%
start gdh.txt
: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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值