Я пытаюсь редактировать простой текстовый INI-файл из командного файла без использования утилиты.
Благодаря коду, ранее опубликованному paxdiablo Я могу сделать это с помощью формыкод ниже.
Однако myfile.ini содержит такие переменные, как thing и newthing .
Я хочу редактировать только первое, а не второе(который включает в себя строку "вещь").
Я не хочу изменять / редактировать значение newthing .
Прямо сейчас каждое редактирование устанавливает значение для обе переменные.
@echo off
set init=50M
set max=75M
setlocal enableextensions enabledelayedexpansion
for /f "tokens=* delims=" %%a in (myfile.ini) do (
set str1=%%a
call :morph
echo !str2!>>myfile_new.ini
echo !str2!
)
endlocal
goto :eof
:morph
set str2=
:morph1
if not "x!str1!"=="x" (
if "!str1:~0,6!"=="thing=" (
set str2=!str2!thing="!init!"
set str1=!str1:~12!
goto :morph1
)
if "!str1:~0,6!"=="thong=" (
set str2=!str2!thong="!max!"
set str1=!str1:~12!
goto :morph1
)
set str2=!str2!!str1:~0,1!
set str1=!str1:~1!
goto :morph1
)
goto :eof
myfile.ini
thing=xyz
thong=def
newthing=abc