Windows的Snipping工具可以捕捉屏幕,但有时我想在五秒钟后捕捉屏幕,例如拍摄网络摄像头显示的图像。(例如,运行脚本并对着镜头微笑。)
如何在批处理文件中休眠5秒?
Windows的Snipping工具可以捕捉屏幕,但有时我想在五秒钟后捕捉屏幕,例如拍摄网络摄像头显示的图像。(例如,运行脚本并对着镜头微笑。)
如何在批处理文件中休眠5秒?
当前回答
我编写了一个powerbasic程序wait.exe,在批处理文件中向它传递一个毫秒参数
wait 3000
system('c:/windows/system32/SnippingTool.exe')
EXE的代码:
FUNCTION PBMAIN()
c$ = Command$
s! = Val(c$)*1000
Sleep s!
END FUNCTION
其他回答
我认为以下命令可以帮助您:
pause 5
pause命令的语法为:pause d\\其中d表示持续时间(秒)
我使用的是Windows 7(32位),但我不知道其他的。
如果系统上有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毫秒)。
创建名为sleep.cmd的cmd文件:
REM Usage: SLEEP Time_in_MiliSECONDS
@ECHO off
ping 1.0.0.0 -n 1 -w %1 > nul
将sleep.cmd复制到c:\windows\system32
用法:
sleep 500
睡眠0.5秒。以毫秒为单位的参数一旦复制到System32,就可以在任何地方使用。
编辑:你还应该注意,如果机器没有连接到网络(比如你在地铁中使用的便携式设备),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并运行它
下面的黑客让你睡5秒钟
ping -n 6 127.0.0.1 > nul
由于ping在两次ping之间等待一秒钟,因此您必须指定一次以上的ping。