我有一个包含各种行或文本的txt文件。它是一个配置文件,因此每一行都是一个新的配置设置。
我需要的是创建一个批处理文件,该文件将在此txt文件中搜索具有某个字符串的STARTS的行,然后用其他内容替换整行。我还需要保留空行。
例如,给定以下文本文件
Line 1
Line 2
Line 3 with some unknown text afterwards
Line 4 with some unknown text afterwards
我想用“这是替换线3”替换整个3号线,用“这是替换线4”替换整个4号线
Line 1
Line 2
This is replacement line 3
This is replacement line 4
如果我通过使用下面的代码知道整个第3行和第4行字符串将会是什么,我可以做到,但如果我只知道行的开头则不行。这也不会保留空行
:Variables
set InputFile=myfile.txt
set OutputFile=myfile.txt
set "_strFind1=Line 3 with some unknow text afterwards"
set "_strFind2=Line 4 with some unknow text afterwards"
set "_strInsert1=This is replacement line 3
set "_strInsert2=This is replacement line 4
:Replace
>"%OutputFile%" (
for /f "usebackq delims=" %%A in ("%InputFile%") do (
if "%%A" equ "%_strFind1%" (echo %_strInsert1%)
else if "%%A" equ "%_strFind2%" (echo %_strInsert2%)
else (echo %%A)
)
)
有人可以帮忙吗?
答案 0 :(得分:0)
这使用名为repl.bat
的帮助程序批处理文件 - 从https://www.dropbox.com/s/qidqwztmetbvklt/repl.bat
将repl.bat
放在与批处理文件相同的文件夹中或放在路径上的文件夹中。
type "file.txt" |repl "^startingtext.*" "New line of text" >"newfile.txt"
请注意,替换文本是微软替换表达式,如果文本显示不正确,可能需要一些escaping
。