batch-file - 如何在批处理编程中从属性文件中读取值
问题描述
我有一个属性文件,其中包含格式为
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
解决方案
属性文件是否真的包含=
?
像这样的东西将读取所有属性并仅显示它们的值:
@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
,对您的属性的一部分执行 a on 操作,或者简单地匹配一个数值或属性中唯一的任何内容。
推荐阅读
- python - 如何在 python 中使用 LIKE 函数与 slqite3 绑定(使用?)
- python - Webdriver 在 Docker 容器中不起作用
- javascript - 常量 i = 新图像();不适用于 react-native iOS 和 Android
- html - 如果我使用没有绝对位置和左上右下 0 的叠加层,接下来会出现什么问题?
- javascript - 如何在 Javascript/Jquery 中比较“EEE Mon dd hh:mm:ss TMZ yyyy”格式的两个日期字符串?
- javascript - 如何在javascript中使用数组组制作下拉列表和子下拉列表
- php - 如何将 Android 设备转换为 Web 服务器
- identityserver4 - 令牌刷新存储以允许 refresh_token
- postgresql - 当 args 数很大时,数据库/sql 无法选择查询
- .net - 在 .NET Core Framework 中从 .NET 重新创建 WebApi 代码