Как получить значения из исполняемого пакетного файла

Я пытаюсь настроить Bonebone RoundhousE с помощью нескольких касаний. Я пытаюсь сделать так, чтобы значения, используемые roundhousE, устанавливались в одном центральном месте, а не в каждом пакетном скрипте развертывания (что является проблемой в заднице). Тем не менее, когда я ссылаюсь на SetupVal.bat из каждого пакета развертывания он устанавливает значения, но просто останавливает выполнение сценария развертывания. Я не уверен, почему это не продолжается, и это действительно раздражает меня.

Это мое SetupVal.bat:

SET product.name="####"
SET database.name="%product.name%.DB"
SET sql.files.directory="..\db\SQLServer"
SET server.database="(local)\SQLEXPRESS"
SET repository.path="git@roconnor:%product.name%.git"
SET version.file="_BuildInfo.xml"
SET version.xpath="//buildInfo/version"
SET environment="LOCAL"

это один из моих сценариев (Local.DBDeployment.bat):

@echo off

cd ..
SetupVal.bat
cd deployment
REM this is to make sure the path is correctly set out

"%cd%\Console\rh.exe" /d=%database.name% /f=%sql.files.directory% /s=%server.database% /vf=%version.file% /vx=%version.xpath% /r=%repository.path% /env=%environment% /simple

pause

Это вывод, когда я бегу Local.DBDeployment.bat:

C:\dev\Database>SetupValues.bat

C:\dev\Database>SET product.name="####"

C:\dev\Database>SET database.name=""####".DB"

C:\dev\Database>SET sql.files.directory="..\db\SQLServer"

C:\dev\Database>SET server.database="(local)\SQLEXPRESS"

C:\dev\Database>SET repository.path="git@roconnor:"####".git"

C:\dev\Database>SET version.file="_BuildInfo.xml"

C:\dev\Database>SET version.xpath="//buildInfo/version"

C:\dev\Database>SET environment="LOCAL"

И, наконец, это моя структура каталогов:

Database (root)
|
 \_db (SQL scripts are here)
 |_deployment (bat scripts are here)
 |_settings (ignoring contents)
 |_SetupVal.bat (This sets the values)

1 ответ

Решение

Когда вы выполняете SetupVal.bat, контроль дается этому файлу. нет возврата, так что если setval.bat заканчивается, завершается пакетная структура. Вместо этого назовите свой файл:

call SetupVal.bat

Ваш начальный пакетный файл продолжится со следующей строки, когда setupval.bat заканчивается и возвращает контроль

Другие вопросы по тегам