I have scripted OnlyNumeric.bat to extract the numeric characters from a string.
The syntax for using OnlyNumeric.bat is:
call OnlyNumeric String NumericVariableName
Where:
String is the string that you wish to parse. NumericVariableName is a call directed environment variable that will contain the numeric characters in String.
Example
If the variable telephoneNumber contained 1 (800) 555-1212, then:call OnlyNumeric %telephoneNumber% NumTelNo
would set the NumTelNo variable to 18005551212.
NOTE: If String contains no numeric characters, then NumericVariableName will be undefined.
NOTE: See How can I update all users telephone number to contain only numeric characters?
OnlyNumeric.bat contains:
@echo off if \{%2\}==\{\} @echo Syntax: OnlyNumeric String NumericVariableName&goto :EOF if exist "%TEMP%\OnlyNumeric.vbs" goto doit @echo.dim str, newstr, num, c1, c2>"%TEMP%\OnlyNumeric.vbs" @echo.Set objshell = CreateObject("WScript.Shell")>>"%TEMP%\OnlyNumeric.vbs" @echo.Set objArgs = WScript.Arguments>>"%TEMP%\OnlyNumeric.vbs" @echo.str=objArgs(0)>>"%TEMP%\OnlyNumeric.vbs" @echo.num = Len(str)>>"%TEMP%\OnlyNumeric.vbs" @echo.For I = 1 To num>>"%TEMP%\OnlyNumeric.vbs" @echo. c1 = Mid(str, I, 1)>>"%TEMP%\OnlyNumeric.vbs" @echo. if c1 ^>= "0" and c1 ^>"%TEMP%\OnlyNumeric.vbs" @echo. c2 = c2 ^& c1>>"%TEMP%\OnlyNumeric.vbs" @echo. end if>>"%TEMP%\OnlyNumeric.vbs" @echo.Next>>"%TEMP%\OnlyNumeric.vbs" @echo.Wscript.Echo c2>>"%TEMP%\OnlyNumeric.vbs" :doit set %2= for /f "Tokens=*" %%a in ('cscript.exe //nologo "%TEMP%\OnlyNumeric.vbs" %1') do ( set %2=%%a )
0 comments
Hide comments