Как читать значения из файла свойств в пакетном программировании - PullRequest
0 голосов
/ 11 января 2019

У меня есть файл свойств, который содержит значения в формате

variable_one = value_one
variable_two = value_two
.
.
.
.



. and so on
с именем файла, как test.properties, который находится в том же каталоге пакетного скрипта Нет, я создаю командный файл, который должен запускаться таким образом, чтобы при двойном щелчке он считывал значения в некоторые переменные и отображал их на экране

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

1 Ответ

0 голосов
/ 11 января 2019

Содержит ли файл свойств пробелы между =?

Что-то вроде этого будет читать все свойства и отображать только их значения:

@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 для части вашего свойства, или просто сопоставьте числовое значение или что-нибудь уникальное в свойстве.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...