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

如何让Ruby脚本等待bat文件(系统命令)执行完成?

Ruby调用bat文件时等待其执行完成的解决方法
  • 先排查bat文件本身:如果你的bat里用了start命令启动外部程序,默认会直接返回导致bat提前结束。给start加上/wait参数,比如把start app.exe改成start /wait app.exe,这样bat会等待启动的程序跑完再退出。

  • 换用Ruby的反引号或%x()执行:这两种方式默认会阻塞当前脚本,直到命令执行完成,写法:

    %x(path/to/file.bat)
    # 或者
    `path/to/file.bat`
    
  • 用spawn+Process.wait组合:手动启动子进程并等待其结束,适合更灵活的进程控制:

    pid = spawn('path/to/file.bat')
    Process.wait(pid)
    
  • 注意路径格式:如果bat文件路径包含空格,要给路径加双引号,避免解析错误:

    system('"C:/Program Files/My Scripts/run.bat"')
    

内容的提问来源于stack exchange,提问作者Samuel Preetham

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 13:05:19