我有一个属性文件,其中包含
格式的值
variable_one = value_one
variable_two = value_two
.
.
.
.
. and so on
For /F "tokens=1* delims==" "variable_one", "variable_two" IN (testing.properties) DO (
IF "variable_one"=="variable_one" set local_variable_one=%%B
IF "variable_two"=="variable_two" set local_variable_two=%%C
)
echo "%local_variable%"
pause
答案 0 :(得分:1)
属性文件是否真的包含=
之间的空格?
类似这样的内容将读取所有属性并仅显示其值:
@echo off
for /f "tokens=2 delims== " %%i in (testing.properties) do echo %%i
pause
其中将显示属性名称和值:
@echo off
for /f "tokens=1,* delims== " %%i in (testing.properties) do echo Property: %%i Value: %%j
pause
如果您真的想将属性设置为变量(用作可读变量)。
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1,* delims== " %%i in (testing.properties) do (
set property=%%i
set value=%%j
echo !property! !value!
)
pause
比较值然后设置它们是另一个任务。在这里,您将给出一个示例,因此请给出一个真实的示例,我们可以从那里开始工作。例如。我们可以将属性名称值设置为可用名称,而无需手动输入:
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1,* delims== " %%i in (testing.properties) do (
set %%i=%%j
echo Property: %%i has Value: !%%i!
)
pause
甚至在字符串中添加一些内容:
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1,* delims== " %%i in (testing.properties) do (
set local_%%i=%%j
echo Property: %%i has value !local_%%i! set as Variable local_%%i
)
pause
最后,为变量赋予唯一名称将取决于某些搜索条件,您可能可以使用属性中的标识符。例如,对您的属性的一部分进行findstr
的操作,或者仅匹配数字值或属性中唯一的任何内容。