我正在尝试同时在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"
......无济于事。
任何人都知道我如何开始这些迁移,并在完成后自动关闭它们?
答案 0 :(得分:3)
您只想退出命令窗口? 你必须逃脱&符号
只需更改" && exit"
结束
<强> TRY:强>
start "%%~nf" %FLYWAY_EXE% migrate -configFile=%~dp0props_flyway\%%~nf\flyway.conf ^&^& exit