Windows下批处理文件没有像Linux一样的Sleep函数进行延时处理,这里有2种较为实用的方法实现延迟: 1、使用WScirpt的sleep功能,精度0.001秒 创建vbs延迟文件,然后在批处理文件中调用,使用WScript的 sleep函数,实现sleep的效果。 实战: 1)创建文件sleep.vbs: echo WScript.sleep 5000 > sleep.vbs sleep.vbs 内容如下: WScript.sleep 5000。 2)在批处理文件中调用,创建示例文件test.bat,内容如下: sc stop OracleOraDb10g_home1TNSListener Wscript sleep.vbs sc start OracleOraDb10g_home1TNSListener 2、使用ping 的定时功能,精度1秒 实战:创建示例文件test2.bat,内容如下: sc stop OracleOraDb10g_home1TNSListener ping -n 3 127.0.0.1>nul sc start OracleOraDb10g_home1TNSListener 说明:3为ping包发送次数,可作为延迟秒数进行使用,需要延迟几秒就设置几。 >nul避免屏幕输出,将输出输入到空设备,因为不需要结果,仅用到其定时功能。 3、还有两种方法实现Sleep功能 一种是通过连续读取系统时间,进行比较,达到一定值时退出实现睡眠功能,但该操作应耗用CPU较大,不推荐。 另一种是德国一位哥们的做法,直接用debug方法生成一个定时器程序,该方法可能破坏系统的稳定性,或容易植入病毒(使用他人代码),亦不推荐使用。 echo q | debug>nul echo Bj@jzh`0X-`/PPPPPPa(DE(DM(DO(Dh(Ls(Lu(LX(LeZRR]EEEUYRX2Dx=>sleep.com echo 0DxFP,0Xx.t0P,=XtGsB4o@$?PIyU WwX0GwUY Wv;ovBX2Gv0ExGIuht6>>sleep.com echo T}{z~~@GwkBG@OEKcUt`~}@MqqBsy?seHB~_Phxr?@zAB`LrPEyoDt@Cj?>>sleep.com echo pky_jN@QEKpEt@ij?jySjN@REKpEt@jj?jyGjN@SEKkjtlGuNw?p@pjirz>>sleep.com echo LFvAURQ?OYLTQ@@?~QCoOL~RDU@?aU?@{QOq?@}IKuNWpe~FpeQFwH?Vkk>>sleep.com echo _GSqoCvH{OjeOSeIQRmA@KnEFB?p??mcjNne~B?M??QhetLBgBPHexh@e=>>sleep.com echo EsOgwTLbLK?sFU`?LDOD@@K@xO?SUudA?_FKJ@N?KD@?UA??O}HCQOQ??R>>sleep.com echo _OQOL?CLA?CEU?_FU?UAQ?UBD?LOC?ORO?UOL?UOD?OOI?UgL?LOR@YUO?>>sleep.com echo dsmSQswDOR[BQAQ?LUA?_L_oUNUScLOOuLOODUO?UOE@OwH?UOQ?DJTSDM>>sleep.com echo QTqrK@kcmSULkPcLOOuLOOFUO?hwDTqOsTdbnTQrrDsdFTlnBTm`lThKcT>>sleep.com echo @dmTkRQSoddTT~?K?OCOQp?o??Gds?wOw?PGAtaCHQvNntQv_w?A?it\EH>>sleep.com echo {zpQpKGk?Jbs?FqokOH{T?jPvP@IQBDFAN?OHROL?Kj??pd~aN?OHROd?G>>sleep.com echo Q??PGT~B??OC~?ipO?T?~U?p~cUo0x>>sleep.com sleep.com>sleep.exe del sleep.com 以上代码要使用批处理方式.使用 sleep.exe 10000 时间单位是毫秒 4、从脚本之家下载sleep.exe文件 |
|
来自: 内德维德04 > 《windows批处理》