如何从执行的批处理文件中获取值

时间:2016-04-15 13:52:38

标签: batch-file cmd 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 个答案:

答案 0 :(得分:2)

执行SetupVal.bat时,将对该文件进行控制。没有返回,所以如果setval.bat结束,则完整的批处理结构结束。而是调用您的文件:

call SetupVal.bat

setupval.bat结束并返回控件

时,您的初始批处理文件将继续下一行