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 "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/

相关文章:

windows - 系统找不到指定的路径 - 批处理文件

python - python 脚本可以持续更改 Windows 环境变量吗? (优雅地)

batch-file - 如何使用 FFprobe 从 Webm 中提取持续时间

Windows 批处理脚本 - 将文件名读入变量

batch-file - 批量重命名基于zip文件的提取文件

assembly - 如何在 Win7 cmd.exe 中抑制 “terminate batch job”

batch-file - 如何获得用户输入-批处理?

windows - 如何编写将一个目录复制到另一个目录并替换旧文件的批处理脚本?

windows - 在 Windows 7 中查找子文件夹中的文件总数

windows - 从批处理文件中的字符串中删除引号 ""