批处理文件解析并返回结果

时间:2012-10-01 13:17:35

标签: parsing batch-file findstr

我必须使用批处理文件,并且必须解析其中一个参数。结果应该转到批处理文件中的一个命令。

因此,批处理文件的其中一个参数如下:

  

Lorem [ABC-1234] ipsum

批处理文件中的一个命令需要上述参数中的ABC-1234值。正则表达式使用非常好,FINDSTR找到它,但如果找到模式则返回它的输入。

  

echo Lorem [ABC-1234] ipsum | findstr /R "\[[A-Z]*\-[0-9]*\]"

返回:

  

echo Lorem [ABC-1234] ipsum

但我想得到

  

ABC-1234

2 个答案:

答案 0 :(得分:2)

假设[之前没有其他][ABC-1234]个字符,那么您可以使用FOR / F

for /f "eol=[ tokens=2 delims=[]" %%A in ("Lorem [ABC-1234] ipsum") do echo %%A

答案 1 :(得分:0)

findstr确实返回整行,而不仅仅是字符串,你必须修剪结果,搜索本身

[A-Z]*-[0-9]* 

就足够了,或者更好

([A-Z]*-[0-9]*)

这已经如上所述:

echo Lorem [ABC-1234] ipsum | findstr /R [A-Z]*-[0-9]*