关于bat命令截取特定字符串的问题

一个TXT文件内容是:
2012-03-29T11:17:31+08:00 esb_provider_core_120329_111731_int2.0.0.1 szit-xuwh
"esb_provider_core_120329_111731_int2.0.0.1"
stream: esb_core_fcr2.0.0@\pvob_esb
component: esb_provider_core@\pvob_esb
2012-03-29T11:17:31+08:00 esb_dbscript_core_120329_111731_int2.0.0.1 szit-xuwh
"esb_dbscript_core_120329_111731_int2.0.0.1"
stream: esb_core_fcr2.0.0@\pvob_esb
component: esb_dbscript_core@\pvob_esb
2012-03-29T11:17:32+08:00 esb_consumer_core_120329_111731_int2.0.0.1 szit-xuwh
"esb_consumer_core_120329_111731_int2.0.0.1"
stream: esb_core_fcr2.0.0@\pvob_esb
component: esb_consumer_core@\pvob_esb

请问如何将 component: 和 @ 之间的 “esb_provider_core” “esb_dbscript_core ” “esb_consumer_core” 截取出来并打印到另一个a.txt中 内容为:

esb_provider_core
esb_dbscript_core
esb_consumer_core

感谢了!!!

第1个回答  2012-04-06
假设原文件名为1.txt
(for /f "tokens=2 delims=:@ " %i in ('findstr "component:" 1.txt') do @echo %i)>a.txt