2016-04-30 72 views
0

我只有网页脚本和可可(Mac)的经验,但没有Windows编程,所以我会非常乐意帮助制作批处理脚本或smt。 我有TEXTFILES哪里有这样的从txt文件中抓取特定信息

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,所以没有断行,我将与", "反正尽快更换。 每次有“回到名单Daten:”我想抓住邮政省和城市,并创造出应该是这样的一个新的txt文件:

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

看看我过去的Q &一个显而易见的是,我的知识是基于网络的技术。 我想感谢所有帮助

编辑: 邮政和城市并不总是在同样的“位置”,因为有时有街道,邮编/城市之间的附加条目。例如:

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

回答

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

+0

有趣。我期待更多的代码。工作正常,但有一个小问题。我忘记提及有时在“街道”和“城市之间”有一个额外的入口,在这种情况下,错误的入口被抓住了,我只是试了一下。任何想法如何解决这个问题? (我在开始的帖子中进行了编辑解释) – RedErdnuss

+0

跳过“bei Muellers”或将其添加到输出中? – Stephan

+0

感谢您回答Stephan。现在它增加了“bei Muellers”的输出 - 我只需要PLZ和城市 – RedErdnuss