2

我想编写一个批处理文件,逐行在文本文件中找到给定的字符串,然后用另一个给定的字符串替换整行。

示例:有文件 text.txt string_replace = abc string_replace_with = xyz 如果 text.txt 中的每一行都包含 string_replace,那么该行将被替换为 string_replace_with

谁能帮我 ?非常感谢

4

3 回答 3

1
@echo off
SET InFile=test.txt
FOR /F "tokens=*" %%A IN ('FINDSTR "xyz" "%InFile%"') DO CALL :FindString "%%A"
pause
goto :eof
:FindString
SET String=%~1
SET String=%String:xyz=abc%
echo.%String%>getout.txt

如果它解决了您的问题,请尝试这些。从您的问题中,我了解到您想要找到该单词并将其替换为所需的单词。

于 2013-06-17T18:48:26.690 回答
0

如果你像这样启动这个 SAR.BAT 文件,它将用 xyz 替换 abc

SAR "fileinput.txt" "fileoutput.txt" "abc" "xyz"

::Search and replace
@echo off
if "%~3"=="" (
echo.Search and replace
echo Syntax: 
echo %0 "filein.txt" "fileout.ext" "regex" "replace_text" [first]
echo.
echo. if [first] is present only the first occurrence is changed
goto :EOF
)
if "%~5"=="" (set global=true) else (set global=false)
set s=regex.replace(wscript.stdin.readall,"%~4")
 >_.vbs echo set regex=new regexp
>>_.vbs echo regex.global=%global%
>>_.vbs echo regEx.IgnoreCase=True            
>>_.vbs echo regex.pattern="%~3"
>>_.vbs echo wscript.stdOut.write %s%
cscript /nologo _.vbs <"%~1" >"%~2"
del _.vbs
于 2013-05-17T21:24:07.307 回答
-1

为自己获取一个 Windows 端口sed

于 2013-05-17T20:54:25.620 回答