Замена текста в файле не выполняется, если строка содержит '=' - PullRequest
0 голосов
/ 26 февраля 2019

Я пытаюсь заменить строку в файле с помощью командного файла в пост-сборочном действии Visual Studio.Первая строка - lMkUk=, а вторая строка (строка замены) - ##DummyValues##.

При замене первой строки второй строкой с использованием пакетного файла в действии посткомпоновки Visual Studio, первая строкабыл заменен не должным образом, а как =##DummyValues##=;= был добавлен в начале и конце второй строки.

Но если я удалю = (и сделаю его lMkUk) в конце первой строки, используя тот же пакетный файл,строка будет успешно заменена.Кажется, что = является проблемой во второй строке.

Вот мой код:

@echo on&setlocal
setlocal enableextensions disabledelayedexpansion
::License key replacement file
set sourceFile=%1

::Replacement string
set FirstVariable=lMkUk=
set SecondVariable=##DummyValues##

::Replacement statement
if NOT "%FirstVariable%" == "" (
        for /f "delims=" %%i in ('type "%sourceFile%" ^& break ^> "%sourceFile%" ') do (
        set "line=%%i"
        setlocal enabledelayedexpansion
        >>"%sourceFile%" echo(!line:%FirstVariable%=%SecondVariable%!
        endlocal
    )
)

Как решить эту проблему в действии Visual Studio после сборки?

...