从Windows Shell脚本中的string中提取一个数字

我有一个string像这个脚本文件hello-1234-something。 我需要使用batch file得到1234。 但号码1234是不一样的,它不断变化,我需要find一个string中的数字,只取出数字。 我是batch file编程的新手。 我想批量做

尝试这个:

@ECHO OFF &SETLOCAL ENABLEDELAYEDEXPANSION SET "teststring=abcDEFG1234ABSdefh" FOR %%a IN ( abcdefghijklmnopqrstu vwxyz ) DO ( SET "teststring=!teststring:%%a=!" ) ECHO %teststring% 

注意:这不适用于特殊字符,例如: <>&|!^

如果你的字符串总是具有字符串连字符号连字符串(例如foo-23-barsome-205-orother ,…),你可以做这样的事情:

 @echo off setlocal set "string=foo-23-bar" for /f "tokens=2 delims=-" %%n in ("%string%") do set "num=%%n" echo %num%