Windows的Snipping工具可以捕捉屏幕,但有时我想在五秒钟后捕捉屏幕,例如拍摄网络摄像头显示的图像。(例如,运行脚本并对着镜头微笑。)
如何在批处理文件中休眠5秒?
Windows的Snipping工具可以捕捉屏幕,但有时我想在五秒钟后捕捉屏幕,例如拍摄网络摄像头显示的图像。(例如,运行脚本并对着镜头微笑。)
如何在批处理文件中休眠5秒?
当前回答
有!
SLEEP <seconds>
如果您希望它处于毫秒模式:
SLEEP -m <time in milliseconds>
这比超时更有用,因为可以通过单击键或CTRL+C(对于超时/t<secs>/nobreak)中止超时。SLEEP不能被任何东西中止(关闭按钮除外:p)
另一个是PING。但PING需要互联网连接,因为您将记录站点的连接。
其他回答
有!
SLEEP <seconds>
如果您希望它处于毫秒模式:
SLEEP -m <time in milliseconds>
这比超时更有用,因为可以通过单击键或CTRL+C(对于超时/t<secs>/nobreak)中止超时。SLEEP不能被任何东西中止(关闭按钮除外:p)
另一个是PING。但PING需要互联网连接,因为您将记录站点的连接。
如果你有选择或ping,这是可行的。
@echo off
echo.
if "%1"=="" goto askq
if "%1"=="/?" goto help
if /i "%1"=="/h" goto help
if %1 GTR 0 if %1 LEQ 9999 if /i "%2"=="/q" set ans1=%1& goto quiet
if %1 GTR 0 if %1 LEQ 9999 set ans1=%1& goto breakout
if %1 LEQ 0 echo %1 is not a valid number & goto help
if not "%1"=="" echo.&echo "%1" is a bad parameter & goto help
goto end
:help
echo SLEEP runs interactively (by itself) or with parameters (sleep # /q )
echo where # is in seconds, ranges from 1 - 9999
echo Use optional parameter /q to suppress standard output
echo or type /h or /? for this help file
echo.
goto end
:askq
set /p ans1=How many seconds to sleep? ^<1-9999^>
echo.
if "%ans1%"=="" goto askq
if %ans1% GTR 0 if %ans1% LEQ 9999 goto breakout
goto askq
:quiet
choice /n /t %ans1% /d n > nul
if errorlevel 1 ping 1.1.1.1 -n 1 -w %ans1%000 > nul
goto end
:breakout
choice /n /t %ans1% /d n > nul
if errorlevel 1 ping 1.1.1.1 -n 1 -w %ans1%000 > nul
echo Slept %ans1% second^(s^)
echo.
:end
只需将其命名为sleep.cmd或sleep.bat并运行它
用户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
我很惊讶没有人提到:
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位),但我不知道其他的。