迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 操作系统 >

等待 Windows 批处理文件中的命令完成执行

作者:迹忆客 最近更新:2023/08/14 浏览次数:

批处理文件中有多个命令和安装过程,通常需要一些时间才能完成。 但是,当运行批处理文件时,它不会等待命令进程完成;而是会等待命令进程完成。 它逐行执行所有命令。

让这些命令等待它们完成然后执行下一个命令非常重要。 对于等待完成的进程,我们将 /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等待exe文件完成

一旦关闭 .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 而不是延迟命令,因为该过程可能需要比指定的时间更长的时间。

上一篇:从批处理文件中将输出重定向到文本文件

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

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 命令可用于等待所有后台进程完成。

MongoDB 安装后等待端口 27017

发布时间:2023/03/18 浏览次数:177 分类:MongoDB

通过这篇 MongoDB 文章的帮助,你将了解如何在你的计算机上安装 MongoDB,并在安装后摆脱等待 27017 错误以及发生此错误的原因。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便