等待 Windows 批处理文件中的命令完成执行
批处理文件中有多个命令和安装过程,通常需要一些时间才能完成。 但是,当运行批处理文件时,它不会等待命令进程完成;而是会等待命令进程完成。 它逐行执行所有命令。
让这些命令等待它们完成然后执行下一个命令非常重要。 对于等待完成的进程,我们将 /wait
参数与 START 命令一起使用。
如果需要在批处理文件中插入一段时间间隔的延迟,而不是启动命令,我们可以使用 TIMEOUT 和 PAUSE 等命令来停止下一个进程的执行一小段时间或直到某个键 被按下。
本文说明了在执行下一个命令之前等待命令或程序完成的不同方法。
使用 /WAIT 等待命令完成执行
当我们使用START命令在批处理文件中启动程序时,我们可以通过在START命令中添加/wait来等待程序完成。 即使有多个命令,也可以使用 /wait 让每个进程完成并移至下一个进程。
此外,参数 /B 用于保持在同一进程中而不创建新窗口。 不带 /B 参数的 START 命令在新窗口中打开程序或命令。
等待命令完成执行
例如,我们需要等待一个命令执行完毕才能运行下一个命令。
@echo off
echo starting first program.
START /B /WAIT cmd /c "C:\Users\Aastha Gas Harda\Desktop\testfile1.bat" > output.txt
echo The first program is executed successfully.
START /B systeminfo >> output.txt
echo All the programs are executed successfully
cmd /k
输出:
等待.exe文件完成执行
另一个例子是我们需要运行一个.exe文件并等待执行完全完成。
@echo off
echo starting first program.
START /B /WAIT JRuler.exe
echo The first program is executed successfully.
START /B systeminfo >> output.txt
echo All the programs are executed successfully
cmd /k
输出:
一旦关闭 .exe 文件,第二个程序就会开始执行。 最后一行的 cmd /k 用于防止命令提示符执行后退出。
如果有多个程序,可以在每个命令中使用 /WAIT 来等待执行完成。 带有 /WAIT 参数的 START 命令没有任何超时,即该过程需要多长时间才能完成并不重要; 它将等待该过程完成。
@echo off
START /WAIT install1.exe
START /WAIT install2.exe
/WAIT
只能与 START 命令一起使用。 我们可以使用 TIMEOUT 和 PAUSE 命令为其他命令插入时间延迟。
使用TIMEOUT命令延迟执行
TIMEOUT
命令用于将命令的执行延迟几秒或几分钟。 它只能在批处理文件中使用。
TIMEOUT
命令的范围在 -1 到 100000 之间变化。如果延迟设置为 -1,它将充当暂停命令,等待按键按下。
如上面的命令一样,我们可以通过插入带有 /t 参数的 TIMEOUT 命令来替换 /wait。 TIMEOUT 命令的语法如下:
TIMEOUT /t <time>
我们以上面的例子为例,在第一个程序执行后添加 30 秒的延迟。 其代码如下所示。
@echo off
echo starting first program.
START /B JRuler.exe
TIMEOUT /t 30
echo The first program is executed successfully.
START /B systeminfo >> output.txt
echo All the programs are executed successfully
cmd /k
输出:
30秒后,第二个程序将开始执行。 此外,如果用户在超时之前按下某个键,第二个程序将开始执行。
要防止用户击键,请在 TIMEOUT 命令中使用 /nobreak
参数。 这将忽略用户按下的任何按键。
不过,您可以通过按 Ctrl+C
来停止延迟,这会提高错误级别 1。
使用 PAUSE 命令暂停执行
PAUSE 命令用于暂停批处理文件的执行,直到按下某个键为止。 如果用户想要读取输出文本或等待进程完成,它非常有用。
但是,没有超时,并且只会持续到用户按下某个键为止。
@echo off
echo starting first program.
START /B cmd /c "C:\Users\Aastha Gas Harda\Desktop\testfile1.bat" > output.txt
echo The first program is executed successfully.
PAUSE
START /B systeminfo >> output.txt
echo All the programs are executed successfully
cmd /k
输出:
上面提到的所有方法都可以正常工作。 如果使用 START 命令,建议使用 /wait
而不是延迟命令,因为该过程可能需要比指定的时间更长的时间。
相关文章
Python 中使用 Selenium 隐式等待
发布时间:2023/07/03 浏览次数:62 分类:Python
-
selenium 包用于使用 Python 脚本进行自动化和测试。 我们可以使用它来访问网页中的各个元素并使用它们。Python 中使用 Selenium 隐式等待 如果我们尝试获取不可用的元素,则会引发 ElementNotVisibl
在Python中添加Selenium Web Driver等待
发布时间:2023/07/03 浏览次数:140 分类:Python
-
本文将介绍在Python中在Selenium Web驱动程序中添加等待的示例。Python Selenium Web 驱动程序等待 大多数 Web 应用程序都使用 AJAX 技术。
在 Python 中等待 5 秒
发布时间:2023/06/28 浏览次数:277 分类:Python
-
本篇文章将讨论如何在 Python 中等待 5 秒。在 Python 中使用 time.sleep() 函数等待 5 秒 Python 的 time 模块提供了存储和操作时间的功能和对象。
Python - 等待异步函数完成
发布时间:2023/06/22 浏览次数:214 分类:Python
-
本文介绍如何创建异步函数并使用await 关键字中断进程。 我们还将学习如何在 Python 中使用任务而不是线程。
Bash 等待后台进程
发布时间:2023/05/18 浏览次数:125 分类:操作系统
-
本篇文章介绍如何在 Bash 中等待后台进程。Bash 等待后台进程。Bash 中的 wait 命令可用于等待所有后台进程完成。
在 Kotlin 中创建和执行协程
发布时间:2023/03/22 浏览次数:98 分类:编程语言
-
本教程向读者介绍协程,并展示如何在 Kotlin 中使用 async-await() 顺序或并发执行它们。
MongoDB 安装后等待端口 27017
发布时间:2023/03/18 浏览次数:177 分类:MongoDB
-
通过这篇 MongoDB 文章的帮助,你将了解如何在你的计算机上安装 MongoDB,并在安装后摆脱等待 27017 错误以及发生此错误的原因。