在批处理脚本中读取配置文件并设置命令参数

本文要实现以下功能
在一个启动脚本中,需要读取指定的配置文件(properties格式),读取指定的值后,传递给相应的命令来执行,以实现可配置参数和参数统一配置的目的(避免在不同的文件中修改参数)

以下为关键的读取配置文件的批处理代码,其中使用了for循环命令:

rem 读取指定文件下的指定参数的值,并将值设制到参数中
//传入的参数 %1:哪个配置文件 %2:读取的key值
//付出 将对应key的值绑定在key上,即set key=value
set b=-

setlocal EnableDelayedExpansion 
set a=-
for /f "delims== tokens=1,2" %%i in (%1) do (
set a=%%i
call :trim a

if !a!==%2 (
set b=%%j
call :trim b
break
)
)
endlocal & set b=%b%

set %2=%b%
goto :eof

    在以上批处理命令中,用到了trim函数,即一个去除一个字符串两端空格的函数。值得注意的是,由于使用了setlocal,使得要将里面的b值传递到外层的b值,在endlocal处使用了 & 符号。即endlocal & set b=%b%,这一句代码,必须连在一行,无论是将endlocal提上一行或者提下一行,均不能实现指定的效果。具体原因尚未得知。

继续阅读“在批处理脚本中读取配置文件并设置命令参数”