我有一个运行多个.cmd文件的批处理文件。我想知道是否可以在运行最后一个之前等待60秒左右。
由于
答案 0 :(得分:4)
您可以使用timeout [seconds]
,即timeout 60
答案 1 :(得分:4)
另一个“解决方法”是使用choice
命令,它在各种windows / dos操作系统上得到更好的支持:
choice /c a /t 10 /d a > nul
会暂停10秒,而屏幕上什么都看不到。
答案 2 :(得分:2)
使用“睡眠”命令。您需要下载它(部分Windows资源工具包) More information here on sleep
答案 3 :(得分:1)
您可以使用Timeout
Syntax
TIMEOUT [seconds]
来自Sleep 的或Windows Server 2003 Resource Kit Tools
Syntax
SLEEP [seconds]
答案 4 :(得分:1)
PING 127.0.0.1 -n 61
它的作用是ping计算机本身,它会立即回复,ping之间的时间是1秒,第一次ping会立即进行,所以只需添加你想要的秒数+ 1作为ping的数量发送。在这种情况下,它将等待60秒。
答案 5 :(得分:1)
如果您更喜欢纯cmd脚本,请使用以下代码段。
首先,此片段以秒为单位返回当前时间。
:gettime
set hh=%time:~0,2%
set mm=%time:~3,2%
set ss=%time:~6,2%
set cc=%time:~-2%
set /A %1=hh*360000+mm*6000+ss*100+cc
goto :eof
然后您可以使用它来构建这样的等待循环。
:wait
call :gettime wait0
:w2
call :gettime wait1
set /A waitt = wait1-wait0
if !waitt! lss %1 goto :w2
goto :eof
最后,将所有部分组合在一起,就有了这个用法示例
@echo off
setlocal enableextensions enabledelayedexpansion
call :gettime t1
echo %t1%
call :wait %1
call :gettime t2
echo %t2%
set /A tt = (t2-t1)/100
echo %tt%
goto :eof
:wait
call :gettime wait0
:w2
call :gettime wait1
set /A waitt = wait1-wait0
if !waitt! lss %1 goto :w2
goto :eof
:gettime
set hh=%time:~0,2%
set mm=%time:~3,2%
set ss=%time:~6,2%
set cc=%time:~-2%
set /A %1=hh*360000+mm*6000+ss*100+cc
goto :eof
有关此处使用的命令的更详细说明,请查看HELP SET
和HELP CALL
信息。
答案 6 :(得分:0)
快速谷歌搜索提出了这个答案......
PING 1.1.1.1 -n 1 -w 30000> NUL
它会尝试ping,直到超时(30000ms)
答案 7 :(得分:0)
GREAT!所以这是一个正确的解决方案,finnaly。 只是一个细节,如果您在本地化操作系统上使用它,请确保您的“DELIMS”设置适合。 例如,使用“DELIMS =:”而不是“DELIMS =:”。为捷克本地化。