我想制作一个批处理文件,分别运行3个可执行文件: A.EXE B.EXE C.exe
P.S:A.exe必须完成它的工作,然后批处理文件去B.exe,最后是C.exe
/wait
参数如果你想 modeler.exe
跑步 只要 后 vcvarsall.bat
已经完成了,你只想要 vcvarsall.bat
跑步 只要 后 vsvars32.bat
已完成。
我想制作一个批处理文件,分别运行3个可执行文件: A.EXE B.EXE C.exe
P.S:A.exe必须完成它的工作,然后批处理文件去B.exe,最后是C.exe
/wait
参数如果你想 modeler.exe
跑步 只要 后 vcvarsall.bat
已经完成了,你只想要 vcvarsall.bat
跑步 只要 后 vsvars32.bat
已完成。
Answers:
三行批处理文件可以。例如,一个名为的批处理文件 mybatch.bat
...
START /wait notepad.exe
START /wait sol.exe
START /wait thirdExecutable.exe
该 /wait
参数也可以替换为 /w
,并指示批处理脚本等待可执行文件终止,然后再继续下一阶段。因此,您可以选择不在第三行使用此参数。这样做只会导致 cmd
窗口保持打开状态,直到第三个可执行文件终止。
编辑解答评论:我担心这对我有用。您还可以确保将可执行文件替换为可执行文件的确切路径 - 例如,如果位于A.exe中 C:\MyFolder\
,你会修改第一行 START /wait C:\MyFolder\A.exe
。如果可执行文件位于环境变量中引用的任何文件夹中,则不需要这样做 %PATH%
或与批处理文件位于同一文件夹中。我不认为这是你的问题。
我不知道那三个 cmd
批量打开的Windows确实是您希望运行的可执行文件?使用批处理文件打开的主窗口将回显它发出的命令,并且还将显示它是否无法执行给定的命令。如果没有收到弹出错误警报,那么批处理文件正在查找并成功运行您指定的三个可执行文件。
正如我提供的链接也说,您也可以使用参数 /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"
这是否按预期工作?
最终编辑:如果你需要在没有权限修改它们的地方运行这个批处理文件,你可以解决环境变量问题。
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
这似乎解决了我的问题。像任何东西一样丑陋,但批处理文件似乎从来没有看起来本质上美丽...
cmd
windows是你的可执行文件。如果这不是您想要的,那么请相应地修改您的问题。
start.exe "title" /wait path
。如果您在引号中指定路径而未指定标题,则会感到困惑,因为它认为路径是标题。因此,您需要指定一个任意标题,例如 start "new program" /wait "C:\thing\stuff.exe"
。