可能重复:
如何在批处理文件中休眠?
我有一个批处理文件,它在 Windows Server 2003 中作为计划任务运行。
这个批处理文件纯粹是接连调用大约 20 个其他批处理文件。
当它运行时,它会导致服务器出现相当大的峰值并降低性能。
我希望能够在每个批处理文件调用之间添加 WAIT 或 SLEEP 类型的命令,以便稍微分散负载。
有人能解释一下最简单的方法吗?
答案1
您正在寻找的代码如下所示:
ping -n 11 127.0.0.1 > NUL
“-n”后面的值表示等待的秒数。
如果您想等待 10 秒,只需再添加一次 ping,
如示例中所示。
此致。
PS:如果您使用 powershell,可能还有其他方法可以做到这一点。
答案2
在批处理文件中休眠的正确方法是使用timeout
命令,在 Windows 2000 Server 和 Windows XP 中引入。
等待 30 秒:
timeout /t 30
如果用户按下任意键,超时就会中断;但是,该命令还接受可选的开关/nobreak
,它可以有效地忽略用户可能按下的任何内容,除了明确的CTRL-C
:
timeout /t 30 /nobreak
此外,如果您不想让命令在屏幕上打印其倒计时,您可以将其输出重定向到NUL
:
timeout /t 30 /nobreak > NUL
答案3
有一个名为 sleep.exe 的 W2K3 资源工具包实用程序,您可以在批处理文件中调用它并告诉它在继续执行下一个命令之前“睡眠”多长时间来使用它。
例子:
网络使用 X:\server\share /Delete
睡眠 300
网络使用 X:\server\share
答案4
最好的方法是使用“ping”,但您可以在这里找到更多方法:http://drbatcher.blogspot.com/2009/10/pauses-and-delays-in-batch-scripts.html