You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确编写等待先前启动的指定程序关闭的代码

错误原因

你代码中的waitfor用法完全不符合该命令的设计逻辑:Windows内置的waitfor是跨进程收发自定义同步信号的工具,本身没有监听进程退出状态的能力,你写的waitfor "closing of chrome.exe"不会触发任何等待进程关闭的效果。

具体实现方案

根据你的实际使用场景选对应写法即可:

  • 如果你是要等待当前脚本自己启动的Chrome关闭:不需要额外加等待命令,只要去掉启动参数里的后台运行标记即可,启动命令本身会阻塞到程序退出后再执行后续逻辑。
    • 写bat/cmd脚本时直接用:
      "C:\Program Files\Google\Chrome\Application\chrome.exe"
      rem 下面写Chrome关闭后要执行的逻辑
      
    • 如果是在MATLAB中调用system函数,去掉命令末尾的&即可,system默认会等待调用的程序退出后再返回:
      system('"C:\Program Files\Google\Chrome\Application\chrome.exe"');
      % 下面写Chrome关闭后要执行的逻辑
      
  • 如果你是要等待已经在运行的、不是当前脚本启动的Chrome关闭:直接用系统自带的进程等待命令即可,不需要自己写轮询,PowerShell的Wait-Process是专门做这个的,一行就能实现:
    Wait-Process -Name chrome
    # 下面写Chrome全部关闭后要执行的逻辑
    
    如果要在bat脚本里用,可以直接调用这行PowerShell命令:
    powershell -Command "Wait-Process -Name chrome"
    rem 下面写Chrome全部关闭后要执行的逻辑
    

注意:Wait-Process默认会等待所有同名进程全部退出才会返回,如果要等待指定PID的单个进程,可以加-Id参数指定进程ID即可。

内容的提问来源于stack exchange,提问作者Aaa A

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 19:36:25