Windows 如何在每次迭代之间有延迟的循环中执行cmd文件?
我有一个cmd文件“D:\ProgramFiles\test.cmd” 我想写一个脚本,在循环中执行test.cmd n次,并且在每次执行之后,我希望延迟/超时5秒Windows 如何在每次迭代之间有延迟的循环中执行cmd文件?,windows,batch-file,cmd,Windows,Batch File,Cmd,我有一个cmd文件“D:\ProgramFiles\test.cmd” 我想写一个脚本,在循环中执行test.cmd n次,并且在每次执行之后,我希望延迟/超时5秒 我该怎么做呢?For循环就是你想要的。在本例中,我们告诉它以1开始计数,步数为1,以5结束,这意味着您将运行5个循环。有关For的详细信息,请从cmd.exe运行For/? 超时,取决于您的操作系统版本。较旧的操作系统没有它,那么可以查看名为sleep的较旧版本,或者使用命令ping,计算您想要的超时值+1超时在某些Windows版
我该怎么做呢?For循环就是你想要的。在本例中,我们告诉它以1开始计数,步数为1,以5结束,这意味着您将运行5个循环。有关
For
的详细信息,请从cmd.exe运行For/?
超时,取决于您的操作系统版本。较旧的操作系统没有它,那么可以查看名为sleep
的较旧版本,或者使用命令ping
,计算您想要的超时值+1<代码>超时在某些Windows版本上,您不喜欢/t
,因此可以在没有它的情况下使用。i、 e超时5
@echo off
for %%i in (1,1,5) do (
echo We do something here..
timeout /t 5
)
要了解Windows cmd/batch命令以及如何在批处理文件中使用这些命令,可以打开cmd
并键入help
,其中将列出命令的加载。然后,每个命令都可以运行,然后是/?
开关,以获得每个命令的完整帮助。示例(n=200):
timeout
命令并非始终可用。例如,在Jenkins之类的生成服务器上执行批处理文件时,或在旧版本的Windows上运行时。但是,有一种方法始终有效:
@ECHO OFF
FOR %%i IN (1,1,5) do (
CALL "D:\ProgramFiles\test.cmd"
ping 127.255.255.255 -n 1 -w 5000> nul
)
这里我们使用ping命令<代码>ping 127.255.255.255-n1-w5000>nul将ping IP地址127.255.255.255。无法访问此地址,但-w 5000
将使命令“等待”5000ms=5s以获得响应。唯一的限制是,你不能用这种方法低于500毫秒。任何低于500的数字都将导致500毫秒的延迟
您也可以使用ping-n6localhost>nul
。这将重复ping六次。请注意,您需要重复6次才能获得5秒的延迟,因为第一次ping将立即启动,因此6次ping意味着5秒的延迟。不要成为名人的牺牲品“
有关更多信息,请访问网站。查看
For/L
和timeout
命令。不知道,但与另一个+1答案相比,它缺少一些解释。你应该调用D:/ProgramFiles/test.cmd
(在循环结束后用另一行echo进行测试。
(有和没有调用
)看看原因)我没有否决,但我不明白你所说的“我喜欢短词”是什么意思。ping 127.0.0.1-n1-w5000
不会造成任何延迟,因为127.0.0.1
总是立即响应ping,所以-w
的超时量没有任何影响。为此,您必须使用一个永远不会响应ping的ip地址,然后您可以使用带有-w
的任何数字进行延迟。您可以使用永远不会响应的环回广播地址<代码>127.255.255.255
@ECHO OFF
FOR %%i IN (1,1,5) do (
CALL "D:\ProgramFiles\test.cmd"
ping 127.255.255.255 -n 1 -w 5000> nul
)