批量设置命令超时时间
本文将首先讨论批处理脚本中超时命令的概念。 之后,我们将讨论为任何其他命令设置超时命令。
批处理脚本中的超时命令
超时是暂停或延迟特定时间段的实用程序。 此命令会进行一定量的中断并在命令行界面上创建暂停。
超时命令的语法如下:
timeout /t <time in seconds> [/nobreak]
带 /t
的命令 timeout 用于创建延迟,后跟 <以秒为单位的时间>
(从 -1 到 100000 的整数,表示创建延迟的时间量(以秒为单位))以及可选参数 /nobreak
。
如果我们将 -1 与超时命令一起使用,它将产生无限期的延迟,直到按下任意键为止。
考虑以下超时命令:
timeout /t 5
timeout /t 5 命令延迟 5 秒或直到未按下任何键。 命令输出如下:
可选参数 /nobreak 用于忽略超时命令创建的延迟期间的任何击键。 例如,考虑以下命令:
timeout /t 5 /nobreak
以下命令的输出如下:
我们还可以隐藏超时命令消息。 命令 timeout /t 5 > nul
用于通过将输出消息重定向到 nul 来隐藏超时命令的消息。
为任何其他命令或进程设置超时
我们可以延迟任何其他自定义命令或进程的超时。 考虑以下批处理脚本:
@echo off
start notepad.exe
timeout /t 4
taskkill /f /im notepad.exe > nul && (
echo Task is killed.
exit /b 31744
) || (
echo No Command or Task to kill. The task is terminated in time.
)
在上面的批处理脚本中,我们使用@echo off命令从命令提示符中隐藏正在执行的命令。 start notepad.exe
命令用于启动进程并启动记事本编辑器窗口。
命令 timeout /t 4
命令延迟 4 秒,然后执行 taskkill 命令,该命令将杀死 notepad.exe 进程(如果尚未杀死)。
此外,该脚本显示任务已被终止。 如果 taskkill 命令终止 notepad.exe 进程,则在终端上显示。
如果 notepad.exe 在超时延迟期间已被终止,则 taskkill 命令将不会终止 notepad.exe 并显示错误消息以及以下输出:
没有要杀死的命令或任务。 任务及时终止。