三行批处理文件就可以了。例如,一个名为mybatch.bat
...的批处理文件
START /wait notepad.exe
START /wait sol.exe
START /wait thirdExecutable.exe
Run Code Online (Sandbox Code Playgroud)
该/wait
参数也可以替换为/w
,并指示批处理脚本等待可执行文件终止,然后再进行下一阶段。因此,您可以选择不在第三行使用此参数。这样做只会导致cmd
窗口保持打开状态,直到第三个可执行文件终止。
编辑以解决评论:恐怕这对我有用。你也可以确保你替换可执行文件的确切路径到你的可执行文件-例如,如果A.exe时定位于C:\MyFolder\
,你将修改的第一行是START /wait C:\MyFolder\A.exe
。如果可执行文件位于环境变量中引用的任何文件夹中%PATH%
或与批处理文件位于同一文件夹中,则不需要此操作。我不认为这是你的问题。
我想知道cmd
批处理打开的这三个窗口是否确实是您要运行的可执行文件?与批处理文件一起打开的主窗口将回显它发出的命令,如果它无法执行给定的命令,也会显示。如果您没有收到弹出错误警报,则您的批处理文件正在查找并成功运行您指定的这三个可执行文件。
正如我提供的链接也说的,除了执行默认最小化的文件之外,您还可以使用参数/minimized
- 或等效地/m
- /wait
。这可能会使事情变得更整洁,看起来像您期望的那样。
既然这样,我认为这是工作完全按照预期。无论如何,正如您描述的问题一样。
第二次编辑:鉴于您的批处理文件,我已经做了一些必要的小改动来完成您想要的操作。我实际上并不知道你想从一开始就回应什么,但它应该显示足够的信息。
ECHO "programs are processing...."
ECHO "First Phase"
START /w "C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\vsvars32.bat"
ECHO "Second Phase"
START /w "C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat"
ECHO "Final phase"
START /w "C:\Program Files\OPNET\16.0.A\sys\pc_intel_win32\bin\modeler.exe"
Run Code Online (Sandbox Code Playgroud)
这是否按预期工作?
最终编辑:如果您需要在没有权限修改它们的地方运行这个批处理文件,您可以绕过环境变量。
ECHO "programs are processing...."
ECHO "First Phase"
C:
cd "\Program Files\Microsoft Visual Studio 9.0\VC\bin
START /w vsvars32.bat
ECHO "Second Phase"
cd ..
START /w vcvarsall.bat
ECHO "Final phase"
cd "\Program Files\OPNET\16.0.A\sys\pc_intel_win32\bin"
START /w modeler.exe
Run Code Online (Sandbox Code Playgroud)
这似乎解决了我的问题。丑陋的任何东西,但批处理文件似乎从来没有本质上美丽......