, вероятно, на Inte уже ответили 1015 *, но я не могу найти решение.
У меня есть файл .ini, который содержит много текста, вот пример:
[General]
FullScreen = True
InternalResolution = 0
Мне нужно настроить пакетный файл, который ищет эту строку InternalResolution и изменяет значение на другое число, например 5. Вывод должен выглядеть следующим образом:
[General]
FullScreen = True
InternalResolution = 5
У меня есть две проблемы, во-первых, значение = 0 иногда может быть = 1 или = 2, а также что все пробелы должны существовать в файле (приложение зависит от этого INI-файла, поэтому я не могу удалить пробелы. Я попробовал это:
@echo off
setlocal disableDelayedExpansion
:Variables
set InputFile=myfile.ini
set OutputFile=myfiletemp.ini
set "_strFind=InternalResolution = 0"
set "_strInsert=InternalResolution = 5"
:Replace
>"%OutputFile%" (
for /f "usebackq delims=" %%A in ("%InputFile%") do (
if "%%A" equ "%_strFind%" (echo %_strInsert%) else (echo %%A)
)
)
DEL %InputFile%
MOVE %OutputFile% %InputFile%
ENDLOCAL
Это работает, только если значение InternalResolution равно 0. Я не знаю, как заменить строку, если значение отличается от 0. Должен быть способ найти, содержит ли строка текст InternalResolution = X, и заменить всю строку или значение.
Спасибо.