首页 > 解决方案 > 如何在批处理文件中替换等号?

问题描述

我正在尝试查找并替换包含等号的字符串,但没有得到预期的结果。但是当文本不包含等号,而只包含字母数字字符时,它可以正常工作。

代码:

@echo off
REM -- Prepare the Command Processor
SETLOCAL ENABLEEXTENSIONS
SETLOCAL DISABLEDELAYEDEXPANSION

::BatchReplace - parses a File line by line and replaces a substring"
::syntax: BatchReplace.bat "SearchStr" "NewStr" File
::          SearchStr [in] - string to be searched
::          ReplaceStr [in] - string to replace with
::          File   [in] - file to be parsed

if "%~1"=="" findstr "^::" "%~f0"&GOTO:EOF
for /f "tokens=1,* delims=]" %%A in ('"type %3|find /n /v """') do (
    set "line=%%B"
    if defined line (
        call set "line=echo.%%line:%~1=%~2%%"
        for /f "delims=" %%X in ('"echo."%%line%%""') do %%~X
    ) ELSE echo.
)

将上面的代码另存为文件 BatchReplace.bat 并创建另一个包含搜索字符串的文件。

示例尝试:

搜索字符串:abc=True

替换字符串:abc=False

预期输出:abc=False

得到的实际输出:True=abc=False=True

语法:BatchReplace.bat "SearchStr" "NewStr" File_name.txt

谁能帮我解决这个问题。我正在寻找仅使用批处理文件命令且没有任何外部应用程序的解决方案。谢谢..

标签: batch-filereplacefindcommandequals

解决方案


推荐阅读