Batch file 如何使用批处理脚本替换文件中的两行文本

Batch file 如何使用批处理脚本替换文件中的两行文本,batch-file,Batch File,我需要替换文本文件中的两行字符串。 我编写了一个脚本来替换一个字符串: @echo off setlocal enabledelayedexpansion rem file name Set infile=file.txt rem what to find Set find=123 rem value to replace Set replace=321 @echo off setlocal enabledelayedexpansion set COUNT=0 for /F "token

我需要替换文本文件中的两行字符串。 我编写了一个脚本来替换一个字符串:

@echo off
setlocal enabledelayedexpansion

rem file name
Set infile=file.txt

rem what to find
Set find=123

rem value to replace
Set replace=321

@echo off
setlocal enabledelayedexpansion
set COUNT=0
for /F "tokens=* delims=," %%n in (!infile!) do (
set LINE=%%n
set TMPR=!LINE:%find%=%replace%!
Echo !TMPR!>>tmp.txt
)
move tmp.txt %infile%
pause

如何修改它以一次替换2行?我的意思是将“find”改为“replace”,将“find2”改为“replace2”?

在您的
设置TMPR=…
之后,添加
设置TMPR=!TMPR:%find2%=%replace2%

@echo off
setlocal enabledelayedexpansion
del tmp.txt
rem file name
Set infile=file.txt

rem what to find
Set find=abc
set find2=def

rem value to replace
Set replace=123
set replace2=456

for /F "tokens=* delims=," %%n in (!infile!) do (
set LINE=%%n
set TMPR=!LINE:%find%=%replace%!
set TMPR=!TMPR:%find2%=%replace2%!
Echo !TMPR!>>tmp.txt
)
type tmp.txt
file.txt:

aaa
abc
bbb
def
ccc
xxxabcyyy
uuudefvvv
nnnabcdefmmm
输出:

aaa
123
bbb
456
ccc
xxx123yyy
uuu456vvv
nnn123456mmm

是否没有其他方法将2值传递给搜索属性字符串并替换该值的函数? 比如:

代码: 源文件看起来像: prop.first.name=firstname

prop.last.name=lastname

prop.pssw.word=密码

prop.url.link=alink

需要替换输入“=”等号后的值
想法是在
设置TMPR=…
之后,使用不同的参数调用一个通用函数4次,添加
设置TMPR=!TMPR:%find2%=%replace2%@Stephan它只是替换了第二行而不是第一行。这是怎么回事?您现有的代码将替换第一行,对吗?在我说的替换第二行的地方添加我的行。好的,这是一个误解)用你的代码是的,它替换两个相等的字符串。但是我想要其他的:我有字符串'abc'和'def',我希望它们分别被替换为'123'和'456'。
CALL :modify prop.first.name , myName
CALL :modify prop.last.name , myLastName
:modify

set "source=srcFile.txt"
set "target=tmpFile.txt"

set property=%~1
set value=%~2

setlocal enableDelayedExpansion
(
for /F "tokens=1* delims==" %%a in ('findstr /B "^" %source%') do (
  set line=%%b
  if defined line echo !line:%property%=%property%=%value%!
)
) > %target%
 endlocal