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

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


当前回答

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

sleep /w2000

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

其他回答

我们不能等一下t/t 180吗?

waitfor/T 180暂停将导致“错误:等待‘暂停’超时”

waitfor/T 180暂停>nul将清除地毯下的“错误”

在Win95之后,等待命令应该在Windows操作系统中

在过去,我下载了一个名为sleep的可执行文件,在您将其放入路径后,它将在命令行上运行。

例如:sleep shutdown-r-f/m\\yourmachine尽管shutdown现在内置了-t选项

两个答案:

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

timeout /t <TimeoutInSeconds> [/nobreak] 

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

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

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

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

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

如果系统上有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毫秒)。