我正在尝试阅读包含50多个键值对的config.properties
,并使用其中一个调用的.bat
文件中的所有键。
我已经有了一个可以读取属性的工作代码但是它会打印key=value
。我只想返回键值,例如john
而不是键名。
1。 main.bat
set READER_FILE="C:\\read.bat"
@ECHO OFF
: INVOKING CONFIG PROPERTIES
call read.bat > %LOGGER% 2>&1
: call %READER_FILE%
: call DownloadContent.bat > %LOGGER% 2>&1
echo %name%
echo %city%
2。 read.bat
@echo off
for /F "eol=# delims== tokens=1,*" %%a in (config.properties) do (
if NOT "%%a"=="" if NOT "%%b"=="" set config.%%a=%%b
)
set config.
for /F "tokens=1 delims==" %%v in ('set config. 2^>null') do (
set %%v=
)
第3。 config.properties
name=john
city=NY
country=USA
如果我遗漏任何细节,请告诉我。
答案 0 :(得分:0)
你需要另一个for循环来处理配置。变量
for /f "tokens=1,2 delims==" %%A ('set config.') echo %%A
那应该只输出以config.
开头的变量名。
答案 1 :(得分:0)
set
对key=value
:
@echo off
for /f "delims=" %%a in (config.properties) do set ###%%a
显示所有值:
for /f "tokens=2 delims==" %%a in ('set ###') do echo %%a
显示所有密钥:
for /f "tokens=1 delims==" %%a in ('set ###') do echo %%a
显示键和值:
set ###
或
for /f "tokens=1,2 delims==" %%a in ('set ###') do echo %%a / %%b
显示一个特定元素:
echo %###name%
echo %###city%
echo %###country%
答案 2 :(得分:0)
我尝试了这段代码,它对我有用:
::Access config.properties file and read it as Key:Value
setlocal enabledelayedexpansion
for /f "tokens=1,* delims== " %%i in (Config.properties) do echo %%i:%%j
Output:
name:john
city:NY
country:USA
If you want to print only values, just remove %%i in above code:
setlocal enabledelayedexpansion
for /f "tokens=1,* delims== " %%i in (Config.properties) do echo %%j
Output:
john
NY
USA