Windows批处理文件 - 在匹配模式中查找并返回字符串

时间:2013-11-19 19:39:26

标签: regex batch-file findstr

我正在使用批处理文件临时识别和加载字体。它在.ai和.pdf文件中查找/FontFamily(Rubber Dinghy Rapids)/之类的字符串。

现在,如果我执行findstr /r FontFamily\(.*\) MyFile.ai,此命令将返回一个非常无休止的垃圾数据行,其中FontFamily(Rubber Dinghy Rapids)丢失在某处。我实际上需要它来返回它里面找到的.*的值 - 在这种情况下 Rubber Dinghy Rapids

我能更优雅地做到这一点吗?或者我可以切换到使用VBScript,如果它更优雅吗?

我当前的解决方案很慢,因为它......嵌套for循环,其中一个用(字符,然后找到显示FontFamily(Rubber Dinghy Rapids的行然后删除FontFamily(来区分垃圾数据字符串,最后留下我 Rubber Dinghy Rapids

1 个答案:

答案 0 :(得分:1)

我写了一个名为FindRepl.bat的混合Batch-JScript程序,它使用JScript的正则表达式来搜索文件中的字符串。使用我的程序,您可以通过这种方式解决问题:

FindRepl.bat "FontFamily\((.*)\)" /$:1 < input.txt

您可以从this site获取我的计划。