Windows的Snipping工具可以捕捉屏幕,但有时我想在五秒钟后捕捉屏幕,例如拍摄网络摄像头显示的图像。(例如,运行脚本并对着镜头微笑。)

如何在批处理文件中休眠5秒?


当前回答

您可以使用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

其他回答

我使用完全基于Windows XP功能的以下方法来延迟批处理文件:

文件DELAY.BAT

@ECHO OFF
REM DELAY seconds

REM GET ENDING SECOND
FOR /F "TOKENS=1-3 DELIMS=:." %%A IN ("%TIME%") DO SET /A H=%%A, M=1%%B%%100,     S=1%%C%%100, ENDING=(H*60+M)*60+S+%1

REM WAIT FOR SUCH A SECOND
:WAIT
FOR /F "TOKENS=1-3 DELIMS=:." %%A IN ("%TIME%") DO SET /A H=%%A, M=1%%B%%100, S=1%%C%%100, CURRENT=(H*60+M)*60+S
IF %CURRENT% LSS %ENDING% GOTO WAIT

您也可以在计算中插入日期,这样当延迟间隔超过午夜时,该方法也可以工作。

ping在超时前等待大约5秒,而不是如上所述的1秒。也就是说,除非你告诉它在超时前只等待1秒。

ping 1.0.0.1-n 1-w 1000

将ping一次,只等待1秒(1000毫秒)的响应,然后超时。

因此,大约20秒的延迟将是:

ping 1.0.0.1-n 20-w 1000

在Windows xp sp3中,可以使用sleep命令

一种黑客是(错误地)使用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的输出。

您可以使用超时:

这将是可见的:超时5

这将不可见超时5>nul