Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1276803
  • 博文数量: 185
  • 博客积分: 50
  • 博客等级: 民兵
  • 技术积分: 3934
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-11 13:11
个人简介

iihero@ChinaUnix, ehero.[iihero] 数据库技术的痴迷爱好者. 您可以通过iihero AT qq.com联系到我 以下是我的三本图书: Sybase ASE in Action, Oracle Spatial及OCI高级编程, Java2网络协议内幕

文章分类

全部博文(185)

文章存档

2014年(4)

2013年(181)

分类: WINDOWS

2014-01-02 17:50:57

好好的批处理,居然没有正式的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:


  1. @echo off  
  2.   
  3.   
  4. echo "emulate sleep......"  
  5. call :wait_ext1 60  
  6. echo "60 seconds waited...."  
  7. goto :eof  
  8.   
  9. :wait_ext1  
  10. @ping 127.0.0.1 -n 2 -w 1000 > nul  
  11. @ping 127.0.0.1 -n %1% -w 1000> nul  

这个就表示要sleep大概60秒钟。


当然,你也可以把wait_ext1那部分重命名一个单独的批处理进行调用。


3. 似乎2003还有一个resource kit包下载,里边就有sleep.exe

(为何不发布出来呢?)


有时候真的是痛恨Windows下的批处理.

阅读(5216) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

nianavamar2014-01-16 11:16:39

学习了