批处理:从字符串“x123y”获取x和y之间的数字

时间:2017-02-01 19:24:48

标签: regex windows batch-file

我需要使用批处理脚本提取su11b_.agm之间的数字。 在下面的示例中,结果应为733

  • su11b_始终相同,此处的数字永远不会改变
  • 733可以改变,范围从1 - 永恒(因此长度可变)

这是我尝试过的(它根本不起作用):

set "str=d:\agrcc\agrtest\server logging\su11b_733.agm"
set /A "number=str"

我想也许正则表达式可以提取su11b_.agm之间的数字,但我不知道如何在批处理脚本中执行此操作?

1 个答案:

答案 0 :(得分:2)

如果您确定数字始终位于su11b_.agm之间,那么您实际上不需要正则表达式。您可以删除su11b_之前的所有内容,然后删除.agm部分:

set "var=d:\agrcc\agrtest\server logging\su11b_733.agm"
set number=%var:*su11b_=%
set number=%number:.agm=%
echo %number%

This link有更多关于替换批量变量中的子串的信息