欢迎来到天天文库
浏览记录
ID:34769092
大小:84.68 KB
页数:8页
时间:2019-03-10
《批处理等待/延迟/暂停时间》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、批处理等待/延迟/暂停1、暂停(Pause)、延迟(Delay)、等待(Wait)、睡眠(Sleep)1)for+set+if,时间精度为0.01秒,适用平台为WinNT/2K/XP/2003。利用for解析变量%time%并存为两个时间点%start%和%now%,再利用set/a计算两个时间点的时间差,最后用if判断时间差是否达到设定的暂停时间。@echooffsetlocalenableextensionsecho%time%call:ProcDelay200echo%time%goto:EOF:ProcDelaydelayMSe
2、c_setlocalenableextensionsfor/f"tokens=1-4delims=:."%%hin("%time%")dosetstart_=%%h%%i%%j%%k:_procwaitloopfor/f"tokens=1-4delims=:."%%hin("%time%")dosetnow_=%%h%%i%%j%%kset/adiff_=%now_%-%start_%if%diff_%LSS%1goto_procwaitloopendlocal&goto:EOF2)VBS脚本中的sleep函数,时间精度为0.001秒,
3、使用平台为Win9x/WinNT系列。动态创建一个调用sleep()函数的VBS脚本,然后用Windows脚本宿主的命令行版本cscript调用它。@echooff&setlocalenableextensionsenabledelayedexpansionechoWScript.Sleep2000>%temp%tmp$$$.vbsecho%time%cscript//nologo%temp%tmp$$$.vbsecho%time%for%%fin(%temp%tmp$$$.vbs)doifexist%%fdel%%fendloc
4、al&goto:EOF3)ping的消息发送间隔,时间精度为1秒,使用平台为Win9x/WinNT系列。需要你的Windows系统中正常安装了网卡的TCP/IP协议,有两种方案:(1)利用ping两次发送消息之间的间隔时间。ping在发送多个消息时,在得到上一次消息的回应后,它会再等待1秒的时间才发送下一次消息,而这个回应时间因机型、系统和网络配置而不同,其中IP地址尤其关键,只有本地的回送地址127.0.0.1因为是立即回应所以才是相对恒定的,其他地址大多会产生显著的差异。此种方法要等待更大的时间,是指定发送的消息数为等待的时间加一,
5、因为第一个消息是不等待的,IP地址必须是127.0.0.1。其等待2秒的程序如下:::根据植树原则,n后的数字为暂停秒数加一ping-n3127.0.0.1>nul(2)利用ping的最大等待时间。ping向0.0.0.1发送一次“网际消息控制协议(ICMP)”回响请求消息,因为0.0.0.1是个无法响应ping请求的IP地址,所以默认情况下,ping会等待一定的最大响应时间——4秒后便停止等待,而-w可以改变这个每发送一次消息所等待的最大响应时间。而如果将IP地址改为立即响应的127.0.0.1或其他响应时间很短的IP,那-w便失去了
6、作用,因为每次发送等待时间都不会达到最大的响应时间,此时延时会缩短。此种方法要等待更大的时间,可以直接使用-w指定,但是需要减去500毫秒(原因尚未知),而且IP地址必须是不响应请求的地址。其等待2秒的程序如下:ping-n2-w5000.0.0.1>nul4)choice的缺省选择等待功能,时间精度为1秒,适用平台为MS-DOS/Win9x/WinNT系列。/t:y,2将缺省选择字符设置为y,等待时间是2秒,/n禁止[y,n]提示出现在命令行上,“rem
7、”的作用是禁止choice从键盘接受按键,从而暂停不会因为按下y或者其它键而被意
8、外终止。rem
9、choice/t:y,2/n>nul5)ASCII汇编代码,延迟精度为0.001秒,适用平台为MS-DOS/Win9x/WinNT。德国人HerbertKleebauer给出了一个通用方案,通过ASCII汇编器间接产生一个sleep.exe程序来实现延迟,这个程序分为DOS和Win两个模块,分别调用DOS系统中断服务和WindowsAPI。::Sleep.bat-Sleep/Delay/Waitnseconds::HerbertKleebauer(Germany)-2005/05/29::ModifiedbyWillSo
10、rt-2005/06/02,07-25@echooffechoq
11、debug>nulechoBj@jzh`0X-`/PPPPPPa(DE(DM(DO(Dh(Ls(Lu(LX(LeZRR]EEEUYRX2Dx
此文档下载收益归作者所有