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

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


当前回答

在较新的Windows OS版本上,可以使用以下命令

sleep /w2000

在DOS脚本(.cmd或.bat)中等待2s(2000毫秒-替换所需的毫秒)。请注意包含/w参数-如果没有它,整个计算机都将进入睡眠状态!如果需要,可以使用-m代替/m,也可以在w和数字之间使用冒号(:)。

其他回答

我很惊讶没有人提到:

C:\> timeout 5

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

睡眠时间在4到5秒之间

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

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

我认为以下命令可以帮助您:

pause 5

pause命令的语法为:pause d\\其中d表示持续时间(秒)

我使用的是Windows 7(32位),但我不知道其他的。

两个答案:

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

timeout /t <TimeoutInSeconds> [/nobreak] 

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

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

下面的黑客让你睡5秒钟

ping -n 6 127.0.0.1 > nul

由于ping在两次ping之间等待一秒钟,因此您必须指定一次以上的ping。

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

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