Windows的Snipping工具可以捕捉屏幕,但有时我想在五秒钟后捕捉屏幕,例如拍摄网络摄像头显示的图像。(例如,运行脚本并对着镜头微笑。)
如何在批处理文件中休眠5秒?
Windows的Snipping工具可以捕捉屏幕,但有时我想在五秒钟后捕捉屏幕,例如拍摄网络摄像头显示的图像。(例如,运行脚本并对着镜头微笑。)
如何在批处理文件中休眠5秒?
当前回答
有!
SLEEP <seconds>
如果您希望它处于毫秒模式:
SLEEP -m <time in milliseconds>
这比超时更有用,因为可以通过单击键或CTRL+C(对于超时/t<secs>/nobreak)中止超时。SLEEP不能被任何东西中止(关闭按钮除外:p)
另一个是PING。但PING需要互联网连接,因为您将记录站点的连接。
其他回答
SLEEP 5包含在一些Windows资源工具包中。
TIMEOUT 5包含在一些Windows资源工具包中,但现在是Windows 7和8中的标准命令(不确定Vista)。
PING 1.1.1.1-n 1-w 5000>NUL对于任何带有TCP/IP客户端的MS-DOS或Windows版本,PING可用于延迟执行数秒。
NETSH badcommand(仅限Windows XP/Server 2003)或CHOICE
此链接将帮助您更多。
您可以使用VBScript,例如文件myscript.vbs:
set wsobject = wscript.createobject("wscript.shell")
do while 1=1
wsobject.run "SnippingTool.exe",0,TRUE
wscript.sleep 3000
loop
批处理文件:
cscript myscript.vbs %1
这是我在实践中使用的最新版本,在脚本完成时暂停10秒以查看输出。
BEST>@echo done
BEST>@set DelayInSeconds=10
BEST>@rem Use ping to wait
BEST>@ping 192.0.2.0 -n 1 -w %DelayInSeconds%000 > nul
echo完成后,我可以看到脚本何时完成,ping提供了延迟。额外的@符号意味着我看到了“已完成”的文本,等待发生时我不会被他们的命令分心。
我已经在XP机器上尝试了这里给出的各种解决方案,因为我的想法是创建一个可以在各种机器上运行的批处理文件,所以我选择XP机器作为最不可能运行的环境。
GOOD> ping 192.0.2.0 -n 1 -w 3000 > nul
这似乎像预期的那样延迟了三秒钟。一次ping尝试持续指定的3秒。
BAD> ping -n 5 192.0.2.0 > nul
这大约需要10秒(而不是5秒)。我的解释是有5次ping尝试,每次间隔约一秒,持续4秒。每一次ping尝试大概持续一秒,估计总共9秒。
BAD> timeout 5
BAD> sleep /w2000
BAD> waitfor /T 180
BAD> choice
命令不可用。
BAD> ping 192.0.2.0 -n 1 -w 10000 > nul :: wait 10000 milliseconds, ie 10 secs
我也尝试了上面的方法,在阅读了可以通过使用两个连续的冒号将注释添加到BAT文件之后。然而,软件几乎立即返回。在ping之前将评论放在自己的行上,效果很好。
GOOD> :: wait 10000 milliseconds, ie 10 secs
GOOD> ping 192.0.2.0 -n 1 -w 10000 > nul
为了更好地理解ping在实践中的作用,我跑了
ping 192.0.2.0 -n 5 -w 5000
这需要大约30秒,尽管5*5=25。我的解释是,有5次ping尝试,每次持续5秒,但两次ping尝试之间大约有1秒的时间延迟:如果您立即再次ping,那么根本没有理由期待不同的结果,最好给网络一点时间来从任何问题中恢复。
编辑:从其他帖子中窃取。。RFC 3330说IP地址192.0.2.0不应该出现在互联网上,所以ping这个地址可以防止这些测试向任何人发送垃圾邮件!我已经相应地修改了上面的文本!
一种黑客是(错误地)使用ping命令:
ping 127.0.0.1 -n 6 > nul
说明:
ping是一个发送ping请求的系统实用程序。ping在所有版本的Windows上都可用。127.0.0.1是本地主机的IP地址。此IP地址保证始终解析、可访问并立即响应ping。-n 6指定将有6个ping。每个ping之间有一个1s的延迟,因此对于5s的延迟,您需要发送6个ping。>nul通过将ping重定向到nul来抑制ping的输出。
创建名为sleep.cmd的cmd文件:
REM Usage: SLEEP Time_in_MiliSECONDS
@ECHO off
ping 1.0.0.0 -n 1 -w %1 > nul
将sleep.cmd复制到c:\windows\system32
用法:
sleep 500
睡眠0.5秒。以毫秒为单位的参数一旦复制到System32,就可以在任何地方使用。
编辑:你还应该注意,如果机器没有连接到网络(比如你在地铁中使用的便携式设备),ping技巧就不再有效了。