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

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


当前回答

用户Aacini提出的代码的改进,它具有百分之一秒的分辨率,当时间达到23:59:59,99时不会失败:

for /f "tokens=1,2,3,4 delims=:," %%A in ("%TIME%") do set /a HH=%%A, MM=1%%B-100, SS=1%%C-100, CC=1%%D-100, TBASE=((HH*60+MM)*60+SS)*100+CC

:: Example delay 1 seg.
set /a TFIN=%TBASE%+100

:ESPERAR
for /f "tokens=1,2,3,4 delims=:," %%A in ("%TIME%") do set /a HH=%%A, MM=1%%B-100, SS=1%%C-100, CC=1%%D-100, TACTUAL=((HH*60+MM)*60+SS)*100+CC

if %TACTUAL% lss %TBASE% set /a TACTUAL=%TBASE%+%TACTUAL%
if %TACTUAL% lss %TFIN% goto ESPERAR

其他回答

还有两种方法可以处理XP及以上版本的所有内容:

具有w32tm:

w32tm /stripchart /computer:localhost /period:5 /dataonly /samples:2  1>nul 

类型为perf:

typeperf "\System\Processor Queue Length" -si 5 -sc 1 >nul

使用mshta(不需要设置网络):

start "" /w /b /min mshta "javascript:setTimeout(function(){close();},5000);"

有!

SLEEP <seconds>

如果您希望它处于毫秒模式:

SLEEP -m <time in milliseconds>

这比超时更有用,因为可以通过单击键或CTRL+C(对于超时/t<secs>/nobreak)中止超时。SLEEP不能被任何东西中止(关闭按钮除外:p)

另一个是PING。但PING需要互联网连接,因为您将记录站点的连接。

我很惊讶没有人提到:

C:\> timeout 5

注意:但是,请注意(谢谢Dan!)超时5意味着:

睡眠时间在4到5秒之间

这可以通过将以下内容放入批处理文件,重复运行并计算第一次和第二次回声之间的时间差来进行经验验证:

@echo off
echo %time%
timeout 5 > NUL
echo %time%

这是我做的。它正在工作,以秒为单位显示剩余时间。如果要使用它,请添加到批处理文件:

call wait 10

当我测试它时,它正在工作。

wait.bat的列表(它必须位于工作目录或windir/system32/中):

@echo off

set SW=00

set SW2=00

set /a Sec=%1-1

set il=00
@echo Wait %1 second
for /f "tokens=1,2,3,4 delims=:," %%A in ("%TIME%") do set /a HH=%%A, MM=1%%B-100, SS=1%%C-100, CC=1%%D-100, TBASE=((HH*60+MM)*60+SS)*100+CC, SW=CC 

set /a TFIN=%TBASE%+%100

:ESPERAR
for /f "tokens=1,2,3,4 delims=:," %%A in ("%TIME%") do set /a HH=%%A, MM=1%%B-100, SS=1%%C-100, 

CC=1%%D-100, TACTUAL=((HH*60+MM)*60+SS)*100+CC,  SW2=CC


if %SW2% neq %SW% goto notype
if %il%==0 (echo Left %Sec% second & set /a Sec=sec-1 & set /a il=il+1)
goto no0
:notype
set /a il=0
:no0

if %TACTUAL% lss %TBASE% set /a TACTUAL=%TBASE%+%TACTUAL%
if %TACTUAL% lss %TFIN% goto ESPERAR

两个答案:

首先,延迟批处理文件,简单地说,没有人们提出的所有迟钝的方法:

timeout /t <TimeoutInSeconds> [/nobreak] 

http://technet.microsoft.com/en-us/library/cc754891.aspx

第二,值得一提的是,虽然它可能不完全符合您的要求,但使用内置的Windows狙击工具,您可以在不使用鼠标的情况下触发对它的狙击。运行狙击工具,退出当前的狙击,但保持工具运行,并在希望发生狙击时点击Control+打印屏幕。这不应该干扰你想剪的东西。