Windows 2003batch file睡眠/等待function

可能重复:
如何睡在一个batch file

我有一个batch file在Windows Server 2003中作为一个secheduled任务运行。

这个batch file纯粹是一个接一个地调用大约20个其他batch file。

当这运行它会导致服务器上的尖峰和性能下降。

我希望能够在每个batch file调用之间添加WAIT或SLEEPtypes的命令,以便将负载分散一点。

任何人都可以通过最简单的方式来阐明这一点吗?

您正在查找的代码如下所示:

ping -n 11 127.0.0.1> NUL

“-n”后面的值表示等待的秒数。
如果你想等10secs只需添加一个ping,
如示例中所示。

最好的祝福。

PS:如果你使用powershell,可能有其他的方法来做到这一点。

在batch file中睡眠的正确方法是使用Windows 2000中引入的timeout命令。

等待30秒:

 timeout /t 30 

如果用户点击任何键,超时将被中断。 但是,该命令还接受可选开关/nobreak ,除了明确的CTRL-C之外,它可以有效地忽略用户可能按下的任何内容:

 timeout /t 30 /nobreak 

此外,如果您不希望命令在屏幕上打印倒计数,则可以将其输出redirect到NUL

 timeout /t 30 /nobreak > NUL 

有一个名为sleep.exe的W2K3资源工具包实用程序,您可以通过在batch file中调用它,并告诉它在转到下一个命令之前“hibernate”多长时间来使用它。

例:

净使用X:\服务器\共享/删除

睡300

净使用X:\服务器\共享

最好的方法是使用“ping”,但是你可以在这里find更多的方法: http : //drbatcher.blogspot.com/2009/10/pauses-and-delays-in-batch-scripts.html