曲径通幽论坛

标题: 模拟 sleep 延迟功能的两种方法 [打印本页]

作者: beyes    时间: 2012-12-13 23:06
标题: 模拟 sleep 延迟功能的两种方法
批处理没有 Linux 里 sleep 这个命令,但我们可以通过其他的方式来模拟 sleep 睡眠以达到延迟的目的。

方法一:使用 ping 命令
ping 命令的一个特点就是每 1 秒 ping 一次,而 -n 选项可以让我们指定 ping 远程服务器多少次。因此利用这两个特性,我们可以模拟 sleep ,代码如下:
[Plain Text] 纯文本查看 复制代码
@echo off
ping 0.0.0.0 /n 5 > nul

/n 选项指定要 ping 的次数。
> nul 表示将输出重定向到空设备,类似与 Linux 里的 /dev/null 。

方法二:使用 timeout  命令
timeout 这个工具接受超时参数,等候一段指定的时间(秒)或等按任意键。它还接受一个参数,忽视按键。
当我们想延迟 5 秒时,可以执行:
timeout /T 5
[attach]1069[/attach]

在这种情况下,命令会倒计时提示;如果在超时前按下任意键,那么延迟中断,如果不希望这样做,可以添加  /NOBREAK 选项:
timeout /T 5 /NOBREAK
[attach]1070[/attach]

这时想中途退出,那么需要按 CTRL + C 组合键。

和 ping 类似的方法,可以将提示信息重定向到 nul 中,因此有:
[Plain Text] 纯文本查看 复制代码
@echo off
echo Delay 5s
timeout /T 5 /NOBREAK > nul
pause





欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2