2012-10-01 128 views
0

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

所以对于批处理文件中的参数中的一个是这样的:

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

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

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

FINDSTR确实返回整条生产线不仅是字符串你必须修剪结果,搜索本身

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

就够了,或更好

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

这个工程已经如上:

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