批处理延时方法小结
2009-10-21 13:17
204 查看
1.ping
CODE: [Copy to clipboard]
@echo off
:loop
echo %time%
ping 127.1 -n 2 1>nul
echo %time%
goto loop
内存使用: cmd.exe 1704k
ping.exe 2920k
误差评定: 较高
优点: 代码构造简单
缺点: 内存占用高,延迟时间长的话误差相对较大。
2.还是ping
CODE: [Copy to clipboard]
@echo off
:loop
echo %time%
ping 1 -n 1 -w 1000 2>nul 1>nul
echo %time%
goto loop
内存使用: cmd.exe 1700k
ping.exe 2912k
误差评定: 一般
优点: 代码构造简单,时间越长误差越小,精确度较高(50ms)
缺点: 内存占用高
3.call
CODE: [Copy to clipboard]
@echo off
:loop
echo %time%
call :delay 1000
echo %time%
goto loop
:delay
set /a num=num + 1
if %num% geq %1 (set num=) && goto :eof
rem for /l %%i in (1,1,%1) do echo. >nul
goto :eof
内存使用: cmd.exe 1744k [for语句方案]
cmd.exe 1740k [set+goto方案]
误差评定: 很高 (受CPU频率影响非常大,几乎无法准确把握全局延迟时间)
优点: 精确度较高
缺点: 不适合需精确把握时间的场合
4.msg
CODE: [Copy to clipboard]
@echo off
:loop
echo %time%
msg %username% /time:20 /w "正在延时,点确定可以取消延时!"
echo %time%
goto loop
内存使用: cmd.exe 1752k
msg.exe 2620k
误差评定: 低
优点: 比较稳定,可中途取消延时,代码构造简单
缺点: 内存占用非常大,有窗口弹出(优点?缺点?)
5.vbs
CODE: [Copy to clipboard]
@echo off
echo Wscript.Sleep WScript.Arguments(0) >%tmp%/delay.vbs
:loop
echo %time%
cscript //b //nologo %tmp%/delay.vbs 2000
echo %time%
goto loop
内存使用: cscript.exe 4812k
cmd.exe 1708k
误差评定: 很低
优点: 精确度最高,使用更灵活,方便
缺点: 产生临时文件,内存占用多
End:
1.测试条件有限,以上数据并不具备权威性。
2.关于精确度。
其实只要是参数可以指定时间的命令精确度都比较高,之所以受影响是取决与命令执行的次数,次数越多,精确度越低。而方案5[vbs方案]中之所以说它的精确度最高,可以举个例子: cscript //b //nologo delay.vbs 2036,而方案二由于最小精确度的缘故,还是比方案5要差一点。
3.欢迎大家补充。
参考链接:
1.从一个GIF文件引起的麻烦
2.[讨论]批处理编程的异类
CODE: [Copy to clipboard]
@echo off
:loop
echo %time%
ping 127.1 -n 2 1>nul
echo %time%
goto loop
内存使用: cmd.exe 1704k
ping.exe 2920k
误差评定: 较高
优点: 代码构造简单
缺点: 内存占用高,延迟时间长的话误差相对较大。
2.还是ping
CODE: [Copy to clipboard]
@echo off
:loop
echo %time%
ping 1 -n 1 -w 1000 2>nul 1>nul
echo %time%
goto loop
内存使用: cmd.exe 1700k
ping.exe 2912k
误差评定: 一般
优点: 代码构造简单,时间越长误差越小,精确度较高(50ms)
缺点: 内存占用高
3.call
CODE: [Copy to clipboard]
@echo off
:loop
echo %time%
call :delay 1000
echo %time%
goto loop
:delay
set /a num=num + 1
if %num% geq %1 (set num=) && goto :eof
rem for /l %%i in (1,1,%1) do echo. >nul
goto :eof
内存使用: cmd.exe 1744k [for语句方案]
cmd.exe 1740k [set+goto方案]
误差评定: 很高 (受CPU频率影响非常大,几乎无法准确把握全局延迟时间)
优点: 精确度较高
缺点: 不适合需精确把握时间的场合
4.msg
CODE: [Copy to clipboard]
@echo off
:loop
echo %time%
msg %username% /time:20 /w "正在延时,点确定可以取消延时!"
echo %time%
goto loop
内存使用: cmd.exe 1752k
msg.exe 2620k
误差评定: 低
优点: 比较稳定,可中途取消延时,代码构造简单
缺点: 内存占用非常大,有窗口弹出(优点?缺点?)
5.vbs
CODE: [Copy to clipboard]
@echo off
echo Wscript.Sleep WScript.Arguments(0) >%tmp%/delay.vbs
:loop
echo %time%
cscript //b //nologo %tmp%/delay.vbs 2000
echo %time%
goto loop
内存使用: cscript.exe 4812k
cmd.exe 1708k
误差评定: 很低
优点: 精确度最高,使用更灵活,方便
缺点: 产生临时文件,内存占用多
End:
1.测试条件有限,以上数据并不具备权威性。
2.关于精确度。
其实只要是参数可以指定时间的命令精确度都比较高,之所以受影响是取决与命令执行的次数,次数越多,精确度越低。而方案5[vbs方案]中之所以说它的精确度最高,可以举个例子: cscript //b //nologo delay.vbs 2036,而方案二由于最小精确度的缘故,还是比方案5要差一点。
3.欢迎大家补充。
参考链接:
1.从一个GIF文件引起的麻烦
2.[讨论]批处理编程的异类
相关文章推荐
- 电脑开不了机的处理方法小结
- Android开发中处理图片OOM (OutOfMemoryError) 的若干方法小结
- Android 中图像特效处理方法小结
- Android处理图片OOM的若干方法小结
- struts2中处理自定义异常的方法小结
- 批处理bat 延时执行命令的两种方法
- 批处理延时方法
- Android处理图片OOM的若干方法小结
- 批处理bat 延时启动的方法
- Android处理图片OOM的若干方法小结
- Android处理图片OOM的若干方法小结
- 【转】Android中几种图像特效处理方法小结
- Unity多个场景叠加或大场景处理方法小结
- 处理Excel方法小结
- WCF使用小结:(1)WCF接收HTTP POST数据的处理方法
- Android处理图片OOM的若干方法小结
- SQL 重复记录问题的处理方法小结
- Android中几种图像特效处理方法小结
- Android处理图片OOM的若干方法小结(好文,向作者致敬)
- struts2中处理自定义异常的方法小结