批处理延迟sleep方法

GPS平台、网站建设、软件开发、系统运维,找森大网络科技!
http://cnsendnet.taobao.com
来自森大科技官方博客
http://www.cnsendblog.com/index.php/?p=657

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避免屏幕输出,将输出输入到空设备,因为不需要结果,仅用到其定时功能。

以下是其他网友的补充:
好好的批处理,居然没有正式的Sleep可供调用。有时候,确实感到很无趣。

  1. 方法1:
    ping 1.1.1.1来模拟
    好不容易从stackoverflow上找到一个答案(称之为答案,是因为它被人标注为answer),是这么实现的:
    ping 1.1.1.1 -n 1 -w 60000 > nul
    这个表示,会sleep 60秒钟。
    果真如此吗? 它要基于一个假设:1.1.1.1永远不会被目标机器ping通。但我却碰到了灵异事件,在某台测试机上,直接能ping通:
    Pinging 1.1.1.1 with 32 bytes of data:
    Reply from 1.1.1.1: bytes=32 time<1ms TTL=60
    Reply from 1.1.1.1: bytes=32 time<1ms TTL=60
    Reply from 1.1.1.1: bytes=32 time=6ms TTL=60
    Reply from 1.1.1.1: bytes=32 time<1ms TTL=60

Ping statistics for 1.1.1.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 6ms, Average = 1ms
所以,这个方法是靠不住的。
2. 依然使用ping来模拟,
请看下边的bat:
这个就表示要sleep大概60秒钟。
当然,你也可以把wait_ext1那部分重命名一个单独的批处理进行调用。
3. 似乎2003还有一个resource kit包下载,里边就有sleep.exe
(为何不发布出来呢?)
下载地址:http://www.jb51.net/softs/2466.html
有时候真的是痛恨Windows下的批处理.
3、还有两种方法实现Sleep功能
一种是通过连续读取系统时间,进行比较,达到一定值时退出实现睡眠功能,但该操作应耗用CPU较大,不推荐。
另一种是德国一位哥们的做法,直接用debug方法生成一个定时器程序,该方法可能破坏系统的稳定性,或容易植入病毒(使用他人代码),亦不推荐使用。
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 echo q | debug>nul
echo Bj@jzh0X-/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?@zABLrPEyoDt@Cj?>>sleep.com
echo pky_jN@QEKpEt@ij?jySjN@REKpEt@jj?jyGjN@SEKkjtlGuNw?p@pjirz>>sleep.com
echo LFvAURQ?OYLTQ@@?QCoOLRDU@?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?hwDTqOsTdbnTQrrDsdFTlnBTmlThKcT>>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??PGTB??OC?ipO?T?U?pcUo0x>>sleep.com
sleep.com>sleep.exe
del sleep.com
以上代码要使用批处理方式.使用 sleep.exe 10000 时间单位是毫秒
4、从脚本之家下载sleep.exe文件
http://www.jb51.net/softs/2466.html

GPS平台、网站建设、软件开发、系统运维,找森大网络科技!
http://cnsendnet.taobao.com
来自森大科技官方博客
http://www.cnsendblog.com/index.php/?p=657

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Windows 的 bat 文件是一种批处理文件,用于在 Windows 操作系统中执行一系列命令。在 bat 文件中,可以使用 "sleep" 命令来让程序暂停执行一段时间。 sleep 命令用于指定程序休眠的时间,单位是毫秒。它的语法如下: sleep 毫秒数 例如,如果希望程序暂停执行 5 秒钟,可以在 bat 文件中写入以下代码: sleep 5000 上述代码中的 "5000" 表示要休眠 5000 毫秒,即 5 秒钟。 使用 sleep 命令可以在 bat 文件中有效地控制程序运行的速度,或者在需要等待一段时间后再执行后续命令时使用。它可以用于处理一些特定的需求,例如需要程序在某个时间点后继续执行,或者在程序执行过程中需要一段间隔时间。 需要注意的是,在较早期的 Windows 操作系统版本中,没有原生的 sleep 命令。但是可以通过在 bat 文件中调用由第三方编写的小工具来实现类似功能。 总而言之,sleep 命令是一种在 Windows 的 bat 文件中用于暂停程序执行一段时间的命令。通过指定休眠的毫秒数,可以在需要控制程序执行速度或者等待一段时间后再继续执行的情况下使用 sleep 命令。 ### 回答2: Windows中的bat文件是一种批处理文件,可以用来自动执行一系列的命令。而sleep命令是一种在批处理文件中使用的命令,它用于暂停程序的执行一段时间。 在bat文件中,使用sleep命令可以实现程序的延时操作。语法为: sleep <时间(以毫秒为单位)> 例如,若要让程序暂停2秒钟,可以在bat文件中写入以下命令: sleep 2000 sleep命令的单位是毫秒,所以必须提供一个整数值作为参数。上述命令将会在执行到该行时暂停2秒钟,然后再继续执行后面的命令。 通过在bat文件中使用sleep命令,可以控制程序的执行速度,使其在特定时间间隔内暂停,以便进行一些操作,例如等待其他程序或任务的完成。 需要注意的是,sleep命令在较旧的Windows系统上可能不可用。在这种情况下,可以考虑使用其他方式来实现延时,如ping命令等。 总之,sleep命令是一种方便的控制程序暂停执行的方法,在编写bat文件时能够帮助我们实现一些需要延时操作的需求。 ### 回答3: Windows的批处理文件中,可以使用"sleep"命令来延迟执行的时间。Sleep命令用于让脚本在指定的时间间隔内暂停执行,以达到延迟的效果。通过使用此命令,我们可以在批处理文件中设置一个延迟,以确保程序运行的时间间隔,或者在需要时暂停脚本的执行。 具体语法如下: ```batch @echo off echo 程序开始执行 REM 这里可以添加其他的批处理命令 REM 等待5秒 timeout /T 5 REM 继续执行其他的批处理命令 echo 程序继续执行 ``` 以上是使用`timeout`命令来实现延迟的示例。其中,`/T`参数用于指定延迟的时间,单位为秒。在上述示例中,脚本会在输出"程序开始执行"后暂停5秒,然后输出"程序继续执行"。 除了`timeout`命令之外,也可以使用`ping`命令或者`choice`命令来实现类似的延迟效果。这些命令都可以在批处理文件中使用,根据具体的需求和环境,选择合适的延迟命令即可。 总而言之,Windows的批处理文件中的`sleep`命令可以实现在脚本执行中添加延迟的效果,以控制程序的流程和执行时间间隔。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值