从txt文件中获取特定信息

时间:2016-04-30 12:37:06

标签: windows batch-file

我只有使用Web脚本和可可(Mac)的经验,但不是Windows编程经验,所以我会非常乐意帮助生成批处理脚本或像这样的smt。 我有文本文件,其中有这样的信息

AlexanderWelten*FI3FFK!duZ1
Daten: Alexander Welten<br />Abrahamstr. 22<br />18472 Berlin<br />Deutschland
Maddiiiiin*hg72152aaf
Daten: Martin Loob<br />Welzstr. 12<br />52621 Frankfurt<br />Deutschland
ricki1991*super112X
Daten: Lars Ulbrich<br />Azurstr. 51<br />72223 Bonn<br />Deutschland
......

"<br />"可以忽略,它不是有效的HTML,所以没有换行,我会尽快用", "替换它。 每次都有&#34; Daten:&#34;我想从中获取邮政和城市,并创建一个新的txt文件,如下所示:

18472 Berlin
52621 Frankfurt
72223 Bonn
......

回顾过去的Q&amp; A,很明显我的知识是基于网络的技术。 我很感激任何帮助

编辑: 邮政和城市并不总是在同一地点#34;,因为有时在街道和邮政编码/城市之间还有一个额外的入口。例如:

Susimega*hfu827aaa
Daten: Susi Lanzwelt<br />Mondstr. 16<br />bei Muellers<br />48812 Magdeburg<br />Deutschland

1 个答案:

答案 0 :(得分:2)

比你想象的容易:

for /f "tokens=5 delims=<>" %%a in (test.txt) do echo %%a

如果您要用逗号替换<br />,请使用"tokens=3 delims=,"

(如果您在命令行中使用它,请使用%a而不是%%a

处理附加条目:

(for /f "tokens=5,7 delims=<>" %%a in (t.txt) do (
  echo %%a|findstr /b "[0-9]">nul && echo %%a || echo %%b
)>output.txt

技巧:如果令牌5以数字开头,则回显令牌5否则回显令牌7