从批处理文件启动程序并继续执行下一个命令

Start a program from a batch file and continue with next command

我正在自动启动 IIS Express,然后启动 ngrok 并自动打开网页以浏览网站。不幸的是,我陷入了最后的障碍,因为一旦 ngrok 启动,批处理文件的最后一行打开页面将不会 运行 直到 ngrok 进程结束,这显然不是很有帮助。

示例:

ngrok http -subdomain=mysubdomain 192.168.0.2:%port%

:: Pause for 3 seconds as IIS Express takes a moment to start
timeout /t 3

:: launch the browser pointing to this location
start /B "" http://mysubdomain.ngrok.io

如果我更改启动 ngrok 的行(如下所示),一切 运行s 都是我想要的,但是一旦页面打开我就失去了与 ngrok 交互的能力:

start /B "" ngrok http -subdomain=mysubdomain 192.168.0.2:%port%

我可以只在一个批处理文件中实现我想要的吗?如果可以,我缺少什么?如果可以的话,我真的很想在一个批处理文件中保持这个自包含和可移植性。

抢先启动浏览器的倒计时和后续启动。

  • 在同一个控制台中:

    start /b "" cmd /c timeout /t 3 ^& start /B "" http://mysubdomain.ngrok.io
    ngrok http -subdomain=mysubdomain 192.168.0.2:%port%
    
  • 或者在单独的最小化控制台中window:

    start /min "" cmd /c timeout /t 3 ^& start /B "" http://mysubdomain.ngrok.io
    ngrok http -subdomain=mysubdomain 192.168.0.2:%port%