Batch file 如何从已执行的批处理文件中获取值
我正在尝试建立一个简单的圆房子设置,只需要几次触摸。我试图将roundhousE使用的值设置在一个中心位置,而不是每个部署批处理脚本(这是一个麻烦)。但是,当我从每个部署批处理中引用Batch file 如何从已执行的批处理文件中获取值,batch-file,cmd,roundhouse,Batch File,Cmd,Roundhouse,我正在尝试建立一个简单的圆房子设置,只需要几次触摸。我试图将roundhousE使用的值设置在一个中心位置,而不是每个部署批处理脚本(这是一个麻烦)。但是,当我从每个部署批处理中引用SetupVal.bat时,它会设置值,但只是停止执行部署脚本。我不知道为什么它不能继续,这真的让我很恼火 这是我的SetupVal.bat: SET product.name="####" SET database.name="%product.name%.DB" SET sql.files.directory="
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"
@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
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"
这是我的一个脚本(Local.DBDeployment.bat
):
这是我运行Local.DBDeployment.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"
@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
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)
当您执行SetupVal.bat
时,将控制该文件。没有返回,因此如果setval.bat
结束,则整个批处理结构结束。而是调用您的文件:
call SetupVal.bat
当setupval.bat
结束并返回control时,您的初始批处理文件将继续下一行,谢谢,太棒了!