String 如何通过使用'=';使用.bat脚本的文件中的符号? 如何通过使用.bat脚本在文件中搜索“=”符号来替换文本行?

String 如何通过使用'=';使用.bat脚本的文件中的符号? 如何通过使用.bat脚本在文件中搜索“=”符号来替换文本行?,string,batch-file,replace,find,String,Batch File,Replace,Find,我有一个文本文件test.txt,文本为 ================================================= PATH=C:\ProgramFiles\Think\Digit\Trunk.exe WORD=C:\ProgramFiles\Microsoft\Word12\Word.exe @echo off setlocal enabledelayedexpansion set INTEXTFILE=C:\Users\PrasanthReddy\Desk

我有一个文本文件test.txt,文本为

=================================================

PATH=C:\ProgramFiles\Think\Digit\Trunk.exe 

WORD=C:\ProgramFiles\Microsoft\Word12\Word.exe
@echo off

setlocal enabledelayedexpansion

set INTEXTFILE=C:\Users\PrasanthReddy\Desktop\test.txt

set OUTTEXTFILE=C:\Users\PrasanthReddy\Desktop\testsimple.txt

set SEARCHTEXT=C:\ProgramFiles\Think\Digit\Trunk.exe

set REPLACETEXT=Deleted

set OUTPUTLINE=


for /f "tokens=1,* delims=¶" %%A in ( '"findstr /n ^^ %INTEXTFILE%"') do (

   SET string=%%A

   for /f "delims=: tokens=1,*" %%a in ("!string!") do set "string=%%b"

   if  "!string!" == "" (

       echo.>>%OUTTEXTFILE%

   ) else (

      SET modified=!string:%SEARCHTEXT%=%REPLACETEXT%!

      echo !modified! >> %OUTTEXTFILE%

  )

)

del %INTEXTFILE%
rename %OUTTEXTFILE% %INTEXTFILE%
=================================================

PATH=C:\ProgramFiles\Think\Digit\Trunk.exe 

WORD=C:\ProgramFiles\Microsoft\Word12\Word.exe
@echo off

setlocal enabledelayedexpansion

set INTEXTFILE=C:\Users\PrasanthReddy\Desktop\test.txt

set OUTTEXTFILE=C:\Users\PrasanthReddy\Desktop\testsimple.txt

set SEARCHTEXT=C:\ProgramFiles\Think\Digit\Trunk.exe

set REPLACETEXT=Deleted

set OUTPUTLINE=


for /f "tokens=1,* delims=¶" %%A in ( '"findstr /n ^^ %INTEXTFILE%"') do (

   SET string=%%A

   for /f "delims=: tokens=1,*" %%a in ("!string!") do set "string=%%b"

   if  "!string!" == "" (

       echo.>>%OUTTEXTFILE%

   ) else (

      SET modified=!string:%SEARCHTEXT%=%REPLACETEXT%!

      echo !modified! >> %OUTTEXTFILE%

  )

)

del %INTEXTFILE%
rename %OUTTEXTFILE% %INTEXTFILE%
我可以将文本“C:\ProgramFiles\Think\Digit\Trunk.exe”替换为“已删除”

但是,我想通过使用变量SEARCHTEXT搜索………PATH=C:\ProgramFiles\Think\Digit\Trunk.exe……,替换整行。但是,我无法使用“=”运算符进行搜索

我拥有具有以下代码的批处理文件:- ==================================================================================

PATH=C:\ProgramFiles\Think\Digit\Trunk.exe 

WORD=C:\ProgramFiles\Microsoft\Word12\Word.exe
@echo off

setlocal enabledelayedexpansion

set INTEXTFILE=C:\Users\PrasanthReddy\Desktop\test.txt

set OUTTEXTFILE=C:\Users\PrasanthReddy\Desktop\testsimple.txt

set SEARCHTEXT=C:\ProgramFiles\Think\Digit\Trunk.exe

set REPLACETEXT=Deleted

set OUTPUTLINE=


for /f "tokens=1,* delims=¶" %%A in ( '"findstr /n ^^ %INTEXTFILE%"') do (

   SET string=%%A

   for /f "delims=: tokens=1,*" %%a in ("!string!") do set "string=%%b"

   if  "!string!" == "" (

       echo.>>%OUTTEXTFILE%

   ) else (

      SET modified=!string:%SEARCHTEXT%=%REPLACETEXT%!

      echo !modified! >> %OUTTEXTFILE%

  )

)

del %INTEXTFILE%
rename %OUTTEXTFILE% %INTEXTFILE%
===========================================================================

PATH=C:\ProgramFiles\Think\Digit\Trunk.exe 

WORD=C:\ProgramFiles\Microsoft\Word12\Word.exe
@echo off

setlocal enabledelayedexpansion

set INTEXTFILE=C:\Users\PrasanthReddy\Desktop\test.txt

set OUTTEXTFILE=C:\Users\PrasanthReddy\Desktop\testsimple.txt

set SEARCHTEXT=C:\ProgramFiles\Think\Digit\Trunk.exe

set REPLACETEXT=Deleted

set OUTPUTLINE=


for /f "tokens=1,* delims=¶" %%A in ( '"findstr /n ^^ %INTEXTFILE%"') do (

   SET string=%%A

   for /f "delims=: tokens=1,*" %%a in ("!string!") do set "string=%%b"

   if  "!string!" == "" (

       echo.>>%OUTTEXTFILE%

   ) else (

      SET modified=!string:%SEARCHTEXT%=%REPLACETEXT%!

      echo !modified! >> %OUTTEXTFILE%

  )

)

del %INTEXTFILE%
rename %OUTTEXTFILE% %INTEXTFILE%

是否有人可以帮助我如何替换它…..我如何替换….

请确定替换是否已完成,并根据结果回显相应的值,而不是输出带有替换值的字符串

@echo off
    setlocal enableextensions disabledelayedexpansion

    set "INTEXTFILE=C:\Users\PrasanthReddy\Desktop\test.txt"
    set "OUTTEXTFILE=C:\Users\PrasanthReddy\Desktop\testsimple.txt"

    set "SEARCHTEXT=C:\ProgramFiles\Think\Digit\Trunk.exe"
    set "REPLACETEXT=Deleted"

    (   for /f "tokens=1,* delims=:" %%a in ('findstr /n "^" "%INTEXTFILE%"'
        ) do if "%%b"=="" (
            echo(
        ) else (
            set "string=%%b"
            setlocal enabledelayedexpansion
            if "!string:%SEARCHTEXT%=!"=="!string!" (
                endlocal
                echo(%%b
            ) else (
                endlocal
                echo(%REPLACETEXT%
            )
        )
    ) > "%OUTTEXTFILE%"

    move /y "%OUTTEXTFILE%" "%INTEXTFILE%"

正则表达式?还是逃避角色?