可能重复:
如何睡在一个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