我正在尝试编写一个批处理脚本,并尝试在两个函数调用之间等待10秒。命令:
sleep 10
不使批处理文件等待10秒。
我正在运行Windows XP。
注意:这不是Sleeping in a batch file的完整副本,因为另一个问题也是关于python,而这是关于Windows批处理文件。
答案 0 :(得分:259)
您可以ping一个肯定不存在的地址并指定所需的超时:
ping 192.0.2.2 -n 1 -w 10000 > nul
由于地址不存在,它将等待10,000毫秒(10秒)并返回。
-w 10000
部分指定所需的超时(以毫秒为单位)。-n 1
部分告诉ping它应该只尝试一次(通常会尝试4次)。> nul
部分,因此ping命令不会向屏幕输出任何内容。您可以通过在PATH中的某处创建sleep.bat并使用上述技术轻松地自己创建睡眠命令:
rem SLEEP.BAT - sleeps by the supplied number of seconds
@ping 192.0.2.2 -n 1 -w %1000 > nul
注意:根据RFC 3330保留192.0.2.x地址,因此它在现实世界中肯定不存在。引用规范:
192.0.2.0/24 - 此块被指定为“TEST-NET”以供使用 文档和示例代码。它经常与之配合使用 供应商和协议中的域名example.com或example.net 文档。此块中的地址不应出现在 公共互联网。
答案 1 :(得分:134)
您最好ping 127.0.0.1 。 Windows ping在ping之间暂停一秒钟,因此如果您想要睡10秒钟,请使用
ping -n 11 127.0.0.1 > nul
这样您就不必担心意外的早期退货(例如,没有默认路线,并且立即知道123.45.67.89无法到达。)
答案 2 :(得分:122)
我实际上找到了正确的命令..它叫做超时:http://www.ss64.com/nt/timeout.html
答案 3 :(得分:44)
我用过这个
:top
cls
type G:\empty.txt
type I:\empty.txt
timeout /T 500
goto top
答案 4 :(得分:7)
怎么样:
@echo off
set wait=%1
echo waiting %wait% s
echo wscript.sleep %wait%000 > wait.vbs
wscript.exe wait.vbs
del wait.vbs
答案 5 :(得分:6)
嗯,你的Windows XP盒子上是否还存在sleep
?根据这篇文章:{* 3}} sleep
在Windows XP上不可用,您必须下载http://malektips.com/xp_dos_0002.html才能获得它。
Chakrit的回答也为你提供了另一种暂停的方式。
尝试从命令提示符运行sleep 10
。