我需要替换文本文件中的两行字符串。 我写了一个替换一个字符串的脚本:
@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行?我的意思是“查找”到“替换”,“查找 2”到“替换 2”?
最佳答案
在您的set TMPR=...
之后,添加set 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
文件.txt:
aaa
abc
bbb
def
ccc
xxxabcyyy
uuudefvvv
nnnabcdefmmm
输出:
aaa
123
bbb
456
ccc
xxx123yyy
uuu456vvv
nnn123456mmm
关于batch-file - 如何使用批处理脚本替换文件中的两行文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52590124/