迹忆客 专注技术分享

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

等待 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 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

等待表元数据锁

发布时间:2024/03/26 浏览次数:129 分类:MySQL

本教程介绍了锁定和元数据锁定等待。还介绍了发生元数据锁等待的原因,并给出了解决方案。

等待线程在 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() 等待输入

Java 等待输入

发布时间:2023/11/16 浏览次数:211 分类:Java

本教程演示如何让 java 等待用户输入用户输入可以指用户希望编译器处理的任何信息或数据。我们可能会遇到希望程序暂停编译并等待用户输入某个值的情况。

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 模块提供了存储和操作时间的功能和对象。

扫一扫阅读全部技术教程

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

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便