找到该行并替换为另一个文本文件windows批处理脚本

时间:2012-05-21 16:34:54

标签: windows replace find batch-file

我正在尝试编写一个Windows批处理脚本,它将一直搜索到

示例:

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

所以我想用另一个文本替换文本( <jar href )之前的第一部分。 我的意思是第一个前4行将替换为另一个文本。 在批处理脚本中是否有任何查找和替换方法。

2 个答案:

答案 0 :(得分:3)

您的特定方案很容易批量实施。我假设您要保留包含<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%

答案 1 :(得分:0)

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

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

然后,你需要了解如何逃脱'&lt;'和'&gt;'使用'^'字符延迟扩展的字符。

我建议您也查看名为DosTips的网站。

最后,编辑属性文件的I wrote a script,这是一个您可以从中提取一些想法的示例。

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