等待 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
而不是延迟命令,因为该过程可能需要比指定的时间更长的时间。
相关文章
在 PowerShell 中等待每个命令完成
发布时间:2024/03/03 浏览次数:281 分类:编程语言
-
本文将解释如何在 PowerShell 中继续执行下一个命令行之前等待每个命令完成的多种方法。
等待线程在 C# 中完成
发布时间:2024/01/20 浏览次数:93 分类:编程语言
-
等待 C# 中的线程完成的主要方法有两种:Task.WaitAll()和 Thread.Join()函数。用 C# 中的 Task.WaitAll() 方法等待线程完成 C# 中的 [Task.WaitAll() 方法)用于等待 Task 类的所有对象的完成。
如何在 Python 中等待用户输入
发布时间:2023/12/23 浏览次数:212 分类:Python
-
本文演示了如何在 Python 中等待用户按下一个键。本教程向你展示了如何在 Python 中等待按键后再进行其他操作。在 Python 中使用 input() 等待输入
Python 中使用 Selenium 隐式等待
发布时间:2023/07/03 浏览次数:76 分类:Python
-
selenium 包用于使用 Python 脚本进行自动化和测试。 我们可以使用它来访问网页中的各个元素并使用它们。Python 中使用 Selenium 隐式等待 如果我们尝试获取不可用的元素,则会引发 ElementNotVisibl
在Python中添加Selenium Web Driver等待
发布时间:2023/07/03 浏览次数:149 分类:Python
-
本文将介绍在Python中在Selenium Web驱动程序中添加等待的示例。Python Selenium Web 驱动程序等待 大多数 Web 应用程序都使用 AJAX 技术。
在 Python 中等待 5 秒
发布时间:2023/06/28 浏览次数:458 分类:Python
-
本篇文章将讨论如何在 Python 中等待 5 秒。在 Python 中使用 time.sleep() 函数等待 5 秒 Python 的 time 模块提供了存储和操作时间的功能和对象。