Windows的Snipping工具可以捕捉屏幕,但有时我想在五秒钟后捕捉屏幕,例如拍摄网络摄像头显示的图像。(例如,运行脚本并对着镜头微笑。)
如何在批处理文件中休眠5秒?
Windows的Snipping工具可以捕捉屏幕,但有时我想在五秒钟后捕捉屏幕,例如拍摄网络摄像头显示的图像。(例如,运行脚本并对着镜头微笑。)
如何在批处理文件中休眠5秒?
当前回答
我认为以下命令可以帮助您:
pause 5
pause命令的语法为:pause d\\其中d表示持续时间(秒)
我使用的是Windows 7(32位),但我不知道其他的。
其他回答
两个答案:
首先,延迟批处理文件,简单地说,没有人们提出的所有迟钝的方法:
timeout /t <TimeoutInSeconds> [/nobreak]
http://technet.microsoft.com/en-us/library/cc754891.aspx
第二,值得一提的是,虽然它可能不完全符合您的要求,但使用内置的Windows狙击工具,您可以在不使用鼠标的情况下触发对它的狙击。运行狙击工具,退出当前的狙击,但保持工具运行,并在希望发生狙击时点击Control+打印屏幕。这不应该干扰你想剪的东西。
我认为以下命令可以帮助您:
pause 5
pause命令的语法为:pause d\\其中d表示持续时间(秒)
我使用的是Windows 7(32位),但我不知道其他的。
我使用完全基于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
如果系统上有PowerShell,则只需执行以下命令:
powershell -command "Start-Sleep -s 5"
编辑:人们提出了一个问题,即与您尝试等待的时间相比,powershell启动所需的时间非常长。如果等待时间的准确性很重要(即一秒或两秒的额外延迟是不可接受的),您可以使用此方法:
powershell -command "$sleepUntil = [DateTime]::Parse('%date% %time%').AddSeconds(5); $sleepDuration = $sleepUntil.Subtract((get-date)).TotalMilliseconds; start-sleep -m $sleepDuration"
这会占用发出windows命令的时间,而powershell脚本将休眠到该时间后的5秒。因此,只要powershell的启动时间比睡眠时间短,这种方法就会奏效(在我的机器上大约是600毫秒)。