从另一个.bat调用多个.bat而不等待一个完成

时间:2018-03-24 13:33:52

标签: powershell batch-file cmd

所以,我想创建一个脚本来执行2个.bat文件并启动一些.exe文件。

但是,.bat文件应该继续运行。

我有这样的事情:

pushd tools\wamp64
start wampmanager.exe

pushd ..\..\server\login
call startLoginServer.bat

pushd ..\test
call startTestServer.bat

start "C:\DEV\P2\Test\client" P2.bin

问题是call startLoginServer.bat不会退出,因此,我被困在这里。

如何运行我的2 .bat文件并让它们继续运行。 (理想情况下,我希望它们在2个不同的命令提示符窗口中运行)

此外,如果您可以纠正我,可能有一种更好的方法来处理相对路径而不是使用pushd

由于

1 个答案:

答案 0 :(得分:1)

您可以使用:

start "Wamp Manager" /B /D"%~dp0tools\wamp64" wampmanager.exe
start "Login Server" /B /D"%~dp0server\login" startLoginServer.bat
start "Test Server"  /B /D"%~dp0server\test"  startTestServer.bat
start "Text Client"  /B /D"%~dp0" "C:\DEV\P2\Test\client.exe" P2.bin

在命令提示符窗口start /?中运行,以获取有关此命令的帮助,解释选项

  1. "..." ...新控制台窗口的标题是可选的,但通常必须在用双引号括起来的任何其他参数上指定。有问题的批处理文件代码中最后一个命令行中的 START 命令将C:\DEV\P2\Test\client解释为窗口标题。也可以使用空窗口标题,即"",如果启动的应用程序是Windows GUI应用程序根本不打开控制台窗口,则最好。{/ p>

  2. /B ...在没有打开新窗口的情况下运行,即在“后台”中运行。如果可执行文件不是Windows GUI应用程序,则可以省略此选项以查看已启动的应用程序和批处理文件输出到控制台的内容。

  3. /D"..."/D "..."定义在运行下一个指定的命令之前首先设置为当前目录的目录。 %~dp0引用包含此命令的批处理文件的目录。此路径始终以反斜杠结尾。因此,在将批处理文件的目录与文件或文件夹名称或路径连接时,不得添加反斜杠。

  4. 在命令提示符窗口call /?中运行以获取有关此命令的帮助,解释如何在批处理文件中引用批处理文件的参数。

    另见How to call a batch file that is one level up from the current directory?上的答案,解释了从批处理文件中调用或启动批处理文件的总共4种不同方法。