我必须使用批处理文件,并且必须解析其中一个参数。结果应该转到批处理文件中的一个命令。
因此,批处理文件的其中一个参数如下:
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
答案 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]*