Windows的Snipping工具可以捕捉屏幕,但有时我想在五秒钟后捕捉屏幕,例如拍摄网络摄像头显示的图像。(例如,运行脚本并对着镜头微笑。)
如何在批处理文件中休眠5秒?
Windows的Snipping工具可以捕捉屏幕,但有时我想在五秒钟后捕捉屏幕,例如拍摄网络摄像头显示的图像。(例如,运行脚本并对着镜头微笑。)
如何在批处理文件中休眠5秒?
当前回答
这应该可以做到:选择/T 5/N/D Y
将5替换为您要等待的时间(秒)。。。
其他回答
尝试Choice命令。自MSDOS 6.0以来,它就已经存在了,应该可以做到这一点。
使用/T参数指定超时(以秒为单位),使用/D参数指定默认选择并忽略所选选项。
如果用户在超时时间过去之前键入其中一个选择字符,可能会出现问题。部分解决方法是混淆情况——使用/N参数隐藏有效选项列表,并且在选项集中只有1个字符,这样用户在超时到期之前键入有效选项的可能性就更小了。
以下是Windows Vista上的帮助文本。我认为这在XP上是一样的,但看看XP计算机上的帮助文本来验证。
C:\>CHOICE /?
CHOICE [/C choices] [/N] [/CS] [/T timeout /D choice] [/M text]
Description:
This tool allows users to select one item from a list
of choices and returns the index of the selected choice.
Parameter List:
/C choices Specifies the list of choices to be created.
Default list is "YN".
/N Hides the list of choices in the prompt.
The message before the prompt is displayed
and the choices are still enabled.
/CS Enables case-sensitive choices to be selected.
By default, the utility is case-insensitive.
/T timeout The number of seconds to pause before a default
choice is made. Acceptable values are from 0 to
9999. If 0 is specified, there will be no pause
and the default choice is selected.
/D choice Specifies the default choice after nnnn seconds.
Character must be in the set of choices specified
by /C option and must also specify nnnn with /T.
/M text Specifies the message to be displayed before
the prompt. If not specified, the utility
displays only a prompt.
/? Displays this help message.
NOTE:
The ERRORLEVEL environment variable is set to the index of the
key that was selected from the set of choices. The first choice
listed returns a value of 1, the second a value of 2, and so on.
If the user presses a key that is not a valid choice, the tool
sounds a warning beep. If tool detects an error condition,
it returns an ERRORLEVEL value of 255. If the user presses
CTRL+BREAK or CTRL+C, the tool returns an ERRORLEVEL value
of 0. When you use ERRORLEVEL parameters in a batch program, list
them in decreasing order.
Examples:
CHOICE /?
CHOICE /C YNC /M "Press Y for Yes, N for No or C for Cancel."
CHOICE /T 10 /C ync /CS /D y
CHOICE /C ab /M "Select a for option 1 and b for option 2."
CHOICE /C ab /N /M "Select a for option 1 and b for option 2."
如果系统上有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毫秒)。
ping在超时前等待大约5秒,而不是如上所述的1秒。也就是说,除非你告诉它在超时前只等待1秒。
ping 1.0.0.1-n 1-w 1000
将ping一次,只等待1秒(1000毫秒)的响应,然后超时。
因此,大约20秒的延迟将是:
ping 1.0.0.1-n 20-w 1000
如果您有适当版本的Windows和Windows Server 2003资源工具包工具,它包括批处理程序的休眠命令。更多信息:http://malektips.com/xp_dos_0002.html
SLEEP 5包含在一些Windows资源工具包中。
TIMEOUT 5包含在一些Windows资源工具包中,但现在是Windows 7和8中的标准命令(不确定Vista)。
PING 1.1.1.1-n 1-w 5000>NUL对于任何带有TCP/IP客户端的MS-DOS或Windows版本,PING可用于延迟执行数秒。
NETSH badcommand(仅限Windows XP/Server 2003)或CHOICE
此链接将帮助您更多。