Обновление файла свойств из пакетного файла путем пропуска и печати комментариев и пустых строк - PullRequest
0 голосов
/ 04 февраля 2019

Я обновляю файл свойств, используя командный файл.Я хотел бы знать, могу ли я обновить файл свойств, пропуская и печатая закомментированные строки и пустые строки.У меня есть несколько ключей в файле свойств, которые по умолчанию не имеют никакого значения.Если я сохраняю = в качестве разделителя, тогда при выполнении echo %%A=%%B для закомментированных строк я получаю дополнительный = в конце строки.

Ниже приведен мой пакетный файл:

echo off
 Set "Parametervalue=dev"
 Set "baseURLvalue=https://prodweb-dev.net/start"
 Set "urlvalue=/client/versions-6.0.1.xml"
 (for /f "usebackq tokens=1* delims==" %%A IN (
 myfile.properties
 ) do if "%%A" equ "Parameter" ( 
 echo Parameter=%Parametervalue%
 ) else if "%%A" equ "baseURL" (
 echo baseURL=%baseURLvalue%
 ) else if "%%A" equ "url" (
 echo url=%urlvalue%
 ) else (echo %%A=%%B)
 )>temp.properties

ожидаемые обновленные свойства с закомментированными строками и пустыми строками, как в оригинальном файле ниже:

#configuration

#baseURL(mandatory)
baseURL=https://prodweb-dev.net/start

#descriptorurl(mandatory) 
#url=/client/versions-6.0.1.xml
url=/client/versions-6.0.1.xml

#Title (optional, new property, default value is "??") 
Title=

#ClientParameter  (optional, no default value) - parameters which will  be     passed to startup file and are accessible by the client application as     environment variable
Parameter=dev

#BackgroundImage (optional, default Image with Daimler logo) 
BackgroundImage=

Ниже получен вывод:

#configuration=
#baseURL(mandatory)=
baseURL=https://prodweb-dev.net/start
#descriptorurl(mandatory) =
#url=/client/versions-6.0.1.xml
url=/client/versions-6.0.1.xml
#Title (optional, new property, default value is "??") =
Title=
#ClientParameter  (optional, no default value) - parameters which will be     passed to startup file and are accessible by the client application as     environment variable=
Parameter=dev
#BackgroundImage (optional, default Image with Daimler logo) =
BackgroundImage=

1 Ответ

0 голосов
/ 04 февраля 2019

Это заменит весь текст по мере необходимости, оставив остальные строки без изменений.Я внесу изменения один раз на моем компьютере, потому что поиск по местоположению является временной мерой, поскольку я не могу проверить с моего телефона.

@echo off
setlocal enabledelayedexpansion

set "iofile=myfile.properties"
set "_param=Parameter=dev"
set "_base=baseURLvalue=https://prodweb-dev.net/start"
set "_url=url=/client/versions-6.0.1.xml"

for /f "tokens=*" %%a in ('type "%iofile%" ^| find /v /n "" ^& break ^> "%iofile%"') do (
     set "str=%%a
     set "str=!str:*]=!"
     if "!str:~0,9!"=="Parameter" set "str=%_param%"
     if "!str:~0,7!"=="baseURL" set "str=%_base%"
     if "!str:~0,3!"=="url" set "str=%_url%"
     >>%iofile% echo(!str!
  )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...