gpt4 book ai didi

java - 批处理 - 如何等待具有特定名称的进程开始和完成?

转载 作者:太空宇宙 更新时间:2023-11-04 06:14:40 24 4
gpt4 key购买 nike

我正在创建一个启动脚本来启动需要特定 Java 版本的游戏启动器。目前看起来是这样的:

@ECHO OFF
echo Enabling Java 7...
SET JAVA_HOME=C:\Program Files\Java\jre7
echo Active Java version location: %JAVA_HOME%
echo Starting ATLauncher...
start /wait ATLauncher.exe
echo Launcher started!

它只是将 Java 版本设置为 Java 7(将 JAVA_HOME 环境变量更改为 Java 7 jre 的路径)并启动游戏启动器 (ATLauncher.exe) 并等待其完成。这符合我的要求,除了一件事:ATLauncher.exe 进程只是一个“启动程序”,它启动调试控制台和 Java 应用程序,提示用户选择要播放的内容,然后启动选定的应用程序。

这带来了两个问题:
1:ATLauncher.exe进程之后启动的应用程序都是Java程序,因此它们的进程名称就是javaw.exe,因此很难识别。
2:当ATLauncher.exe进程停止时批处理文件关闭(这是我所期望的),但我希望它运行直到最后一个启动的Java进程终止,然后运行更多命令,然后停止。

这是我想要实现的“流程”:

  1. 脚本已启动。
  2. JAVA_HOME 变量已更改。
  3. ATLauncher.exe 进程启动。
  4. 进程 ATLauncher.exe 启动两个 javaw.exe 进程。
  5. 进程 ATLauncher.exe 停止。
  6. 其中一个 javaw.exe 进程启动第三个 javaw.exe 进程。
  7. 第三个 javaw.exe 进程停止。
  8. 第一个和第二个 javaw.exe 最终停止,或者“流程”再次从步骤 6 开始。
  9. 脚本执行更多命令并停止。

我希望这已经足够清楚了!请告诉我是否需要更清楚地解释一些事情!

谢谢!

最佳答案

试试这个:

:loop
rem wait 4 sec
ping -n 5 localhost >nul
tasklist /fi "IMAGENAME EQ javaw.exe" /fi "STATUS EQ RUNNING" | find /i "javaw.exe" > nul && goto:loop
rem more commands here

关于java - 批处理 - 如何等待具有特定名称的进程开始和完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28251862/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com