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

4

2 回答 2

2

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

for /f "eol=[ tokens=2 delims=[]" %%A in ("Lorem [ABC-1234] ipsum") do echo %%A
于 2012-10-01T14:49:58.017 回答
0

findstr 确实返回整行,不仅是您必须修剪结果的字符串,还用于搜索本身

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

就足够了,或者更好

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

这已经如上所述:

echo Lorem [ABC-1234] ipsum | findstr /R [A-Z]*-[0-9]*
于 2013-03-19T13:34:32.037 回答