如果一行包含“ =”,则文件中的文本替换失败

时间:2019-02-26 13:21:37

标签: visual-studio batch-file replace post-build-event post-build

在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生成后操作中解决此问题?

0 个答案:

没有答案