windows批处理中实现延时的办法
2021-06-07 14:02
标签:选项 ping命令 ota 输入 ping 使用 暂停 evel 批处理 windows批处理中实现延时的办法 五种方法可以实现批出里的延时,推荐使用方法一,该方法也是使用最多的. 方法一 用ping命令延迟(这是最简单而且是最常见的): @echo off echo "use ping to delay" set SLEEP=ping 127.0.0.1 /n echo %time% %SLEEP% 4 > nul echo %time% pause 方法二 还可以用for循环作延迟,例如: @echo off echo "use for to delay" echo %time% for /l %%i in (1,1,100) do echo %%i >nul echo %time% pause 方法三 用choice命令作延迟:例如 @echo off echo "use choice to delay" CHOICE /T 3 /C ync /CS /D y if errorlevel 1 goto next :next :: /T:为暂停秒数(0~9999)这里是暂停10秒的意思 :: /D:为在 nnnn 秒之后(即/T设定的时间)指定默认选项。 :: /c:为指定要创建的选项列表。默认列表是 "YN"。若只作延迟,这里可以设置默认选项为y,暂停后通过if去到默认的标签处执行后面的命令。 :: 若想了解更多可以在cmd中输入choice/? 方法四 用vbs作延迟(可精确到毫秒): @echo off echo "use vbs to delay" echo %time% call :delay 3000 echo %time% pause exit :delay echo WScript.Sleep %1>delay.vbs CScript //B delay.vbs del delay.vbs 方法五 纯粹用bat延迟(最为复杂,可精确到毫秒): @echo off set /p delay=请输入需延迟的毫秒数: set TotalTime=0 set NowTime=%time% ::读取起始时间,时间格式为:13:01:05.95 echo 程序开始时间:%NowTime% :delay_continue set /a minute1=1%NowTime:~3,2%-100 ::读取起始时间的分钟数 set /a second1=1%NowTime:~-5,2%%NowTime:~-2%0-100000 ::将起始时间的秒数转为毫秒 set NowTime=%time% set /a minute2=1%NowTime:~3,2%-100 :: 读取现在时间的分钟数 set /a second2=1%NowTime:~-5,2%%NowTime:~-2%0-100000 ::将现在时间的秒数转为毫秒 set /a TotalTime+=(%minute2%-%minute1%+60)%%60*60000+%second2%-%second1% if %TotalTime% lss %delay% goto delay_continue echo 程序结束时间:%time% echo 设定延迟时间:%delay%毫秒 echo 实际延迟时间:%TotalTime%毫秒 pause windows批处理中实现延时的办法 标签:选项 ping命令 ota 输入 ping 使用 暂停 evel 批处理 原文地址:https://www.cnblogs.com/anyiz/p/10737311.html