直到find该行并用另一个文本文件windows批处理脚本replace

我正在尝试写一个窗口批处理脚本,它将search,直到

例:

example1 example2 example3 example4 <jar href="example.jar" main="true"/> 

所以我想用另一个文本replace第一部分,直到( <jar href )的文本。 我的意思是第一个4行将被replace为另一个文本。 在批处理脚本中是否有直到find和replace的方法?

Solutions Collecting From Web of "直到find该行并用另一个文本文件windows批处理脚本replace"

您的特定场景很容易批量实施。 我假设你想保留包含<jar href的整个行

你不会说替换文本来自哪里。 我假设它来自另一个文件。

 @echo off set file1="test.txt" set file2="replacement.txt" set output="new.txt" for /f "delims=:" %%N in ('findstr /n /c:"<jar href" %file1%') do ( set /a skip=%%N-1 goto :break ) :break ( type %file2% more +%skip% %file1% )>%output% 

你可以做到这一点,但编辑XML是不是很容易使用DOS,为了做到这一点,你首先需要像这样开始你的批处理文件:

 @ECHO off SETLOCAL ENABLEDELAYEDEXPANSION :: :: script content here :: PAUSE 

然后,您将需要了解如何使用'^'字符以延迟扩展的方式来逃避“<”和“>”字符。

我会建议你也审查网站名为DosTips 。

最后, 我写了一个编辑属性文件的脚本 ,这是一个可以从中获得一些想法的例子。

最后,如果您正在编辑的是纯XML,那么您可能会在dos脚本中使用XML Starlet获得一些成功。