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

时间:2018-05-30 06:06:12

标签: batch-file search text

有一个Analysis.txt文件,我需要包含"<的所有行。路径> TEXT< /路径>"和<频道> 1< /渠道&gt ;.我这样做了:

FOR /F %%i in (Analysis\Analysis.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

现在一切都已整理好了。但我只需要&lt;之间的元素。路径&gt;和&lt; /路径&gt;。

所以我的问题是我可以删除&lt;路径&gt;和&lt; /路径&gt;在将它们保存到另一个.txt之前,或者我可以只读取它们之间的元素并将其保存到变量中。

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

问候,

亚历

1 个答案:

答案 0 :(得分:0)

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

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和管道。)