Я пытаюсь выполнить миграцию Flyway в 11 разных баз данных одновременно. Я делаю это с помощью пакетного файла ...Как закрыть командную строку после завершения выполнения с помощью запуска
@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 командными стремительных открытыми окнами, и мне нужно вручную перейти в каждый и типа «выход». Возможно ли, чтобы эти окна командной строки автоматически закрывались после того, как миграция на пролетной основе выполнила свою работу, чтобы спасти меня, чтобы закрыть их вручную?
Я могу сделать это, не используя старт. Затем он выполняет миграцию последовательно, однако я бы предпочел сделать их параллельно, чтобы сэкономить время.
Я пробовал использовать пустую строку после запуска с this question, но это ничего не делает для меня в Windows 8.1, за исключением того, чтобы открыть командную строку с пустым заголовком вместо того, который я хочу иметь.
Я также попытался ...
cmd /c "start ^"%%~nf^" %FLYWAY_EXE% migrate -configFile=%~dp0props_flyway\%%~nf\flyway.conf"
... безрезультатно.
Кто-нибудь знает, как я могу начать каждую из этих миграций и закрыть их после завершения?
Superb. Большое спасибо. Работало с удовольствием :) – ManoDestra
Это будет работать, если EXE не запускает запущенный процесс или службу. Закрытие Cmd окна, скорее всего, приведет к выходу из этого процесса или службы. – sambul35
Да, это не проблема для моего сценария, поскольку исполняемый файл не возвращается, пока он не будет завершен. Итак, отлично работает для меня :) – ManoDestra