在批处理文件中运行exe格式

use*_*509 0 batch windows-xp

我想制作一个批处理文件,分别运行3个可执行文件:A.exe B.exe C.exe


PS:A.exe 必须完成它的工作然后批处理文件去 B.exe 最后 C.exe

JBi*_*rch 9

三行批处理文件就可以了。例如,一个名为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)

这似乎解决了我的问题。丑陋的任何东西,但批处理文件似乎从来没有本质上美丽......

  • 你在路径周围使用引号吗?这将打破它 - 启动命令的完整语法是`start.exe "title" /wait path`。如果在引号中指定路径而不指定标题,它会感到困惑,因为它认为路径就是标题。所以,你需要指定一个任意的标题,例如`start "new program" /wait "C:\thing\stuff.exe"`。 (3认同)