![添加环境、启动和应用程序的路径](https://linux22.com/image/1323347/%E6%B7%BB%E5%8A%A0%E7%8E%AF%E5%A2%83%E3%80%81%E5%90%AF%E5%8A%A8%E5%92%8C%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E7%9A%84%E8%B7%AF%E5%BE%84.png)
我想添加一些 shell 操作来执行一些应用程序。这些应用程序需要从复杂的批处理文件中设置一些环境。
也就是说,我的操作应该调用:
c:\xxx\SetPath.bat
c:\yyy\startApp.exe
问题是 SetPath.bat 打开 cmd.exe 并设置环境并停留在 cmd.exe 内,但我需要设置该环境,然后执行应用程序。最重要的是,该应用程序是一个 GUI 应用程序,因此最好避免在运行环境批处理文件时显示控制台(我可以使用 hidcon 来实现)。
该 GUI 应用程序是 cygwin shell(mintty),在登录时我还需要添加一些操作:)但这没什么大不了的。
我曾经见过用 vbs 完成的类似操作,但我不记得在哪里了。
答案1
通常,当您从另一个批处理文件运行一个批处理文件时,控制权将永久转移到第二个批处理文件。如果您希望它运行然后返回,请使用该call
命令。
通常,当您在批处理文件中运行命令时,批处理文件会等待命令完成后再移至下一行。要使其继续执行下一行而不等待,请使用该start
命令。
因此您需要将.bat
文件改为:
call c:\xxx\setpath.bat
start c:\yyy\startapp.exe
它setpath
调用运行,然后返回并启动startapp
,然后继续下一行,在本例中是文件结束,因此批处理文件结束并且控制台窗口关闭,而 GUI 程序继续运行。