使用批处理删除文本文件中的某些文本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用批处理删除文本文件中的某些文本相关的知识,希望对你有一定的参考价值。

有一个Analysis.txt文件,我需要所有包含“<Path> TEXT </ Path>”和<Channel> 1 </ Channel>的行。我这样做了:

FOR /F %%i in (AnalysisAnalysis.gla) do (
  echo %%i >> Analysis.txt
)

::////Findet Alle Dateinamen in Analysis
for /f %%a IN ('type "Analysis.txt" ^| findstr /i "<Path>" 2^>nul') DO echo 
%%a >> Path.txt
::////Findet den dazugehörigen Channel
for /f %%a IN ('type "Analysis.txt" ^| findstr /i "<Channel>" 2^>nul') DO 
echo %%a >> Channel.txt

现在一切都好了。但我只需要<Path>和</ Path>之间的元素。

所以我的问题是我可以在将它们保存到另一个.txt之前删除<Path>和</ Path>,或者我可以只读取这些之间的元素并将其保存到变量中。

endresult应该获得Path.txt和Channel.txt的第一行并组合它们。

问候,

亚历克斯

答案

假设,由于缺少其他信息(例如,例如行),所需文本全部在一条物理线上,并且该行没有前面的空白字符,

for /f "tokens=2 delims=><" %%a IN ('type "Analysis.txt" ^| findstr /i "<Path>" 2^>nul') DO echo %%a >> Path.txt

应该管用。如果行上有空格,则将2更改为3

请参阅提示中的for /?进行推理 - 或者在SO上看到数以千计的类似示例。

(另外,findstr /i "<Path>" "Analysis.txt"也可用于避开type和管道。)

以上是关于使用批处理删除文本文件中的某些文本的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法以编程方式使用kotlin更改片段中的文本颜色?

React 片段中的文本

如何从文本文件中删除重复并包含某些单词的行?

centos 7中的文本处理工具sed命令的使用

使用批处理删除文本文件中特定单词之前的文本

创建批处理文件以浏览文本文件并删除所有引号