如何在可执行文件完成后使用start

时间:2016-08-12 20:49:50

标签: windows batch-file flyway

我正在尝试同时在11个不同的数据库上运行Flyway迁移。我这样做是通过批处理文件...

@echo off
setlocal
set FLYWAY_EXE=C:\flyway-3.2.1\flyway
for /d %%f in (%~dp0props_flyway\*) do (
    start "%%~nf" %FLYWAY_EXE% migrate -configFile=%~dp0props_flyway\%%~nf\flyway.conf
)
set FLYWAY_EXE=
@echo on

这种方法工作正常,但它让我打开了11个命令提示符窗口,我需要手动进入每个并输入“exit”。在飞路迁移完成其工作后,这些命令提示窗口是否可以自动关闭,以免我必须手动关闭它们?

我可以在不使用start的情况下完成。然后它会连续执行迁移,但我宁愿并行执行迁移以节省时间。

我尝试从this question启动后使用空字符串的方法,但是在Windows 8.1上这对我没有任何作用,除了用空标题打开命令提示符而不是我想要的标题提示符

我也试过......

cmd /c "start ^"%%~nf^" %FLYWAY_EXE% migrate -configFile=%~dp0props_flyway\%%~nf\flyway.conf"

......无济于事。

任何人都知道我如何开始这些迁移,并在完成后自动关闭它们?

1 个答案:

答案 0 :(得分:3)

您只想退出命令窗口? 你必须逃脱&符号

只需更改" && exit"结束

即可更改命令

<强> TRY:

start "%%~nf" %FLYWAY_EXE% migrate -configFile=%~dp0props_flyway\%%~nf\flyway.conf ^&^& exit