How to check if a parameter (or variable) is a number in a Batch script
batch-file, variables, windows
Solution
SET "var="&for /f "delims=0123456789" %%i in ("%1") do set var=%%i
if defined var (echo %1 NOT numeric) else (echo %1 numeric)
Replace `%1` with `%yourvarname%` as appropriate
Problem
I need to check if a parameter that is passed to a Windows Batch file is a numeric value or not. It would be good for the check to also works for variables. I found an answer to a similar question, where the `findstr` command is used with a regular expression. I did try that solution, but it’s not working like I hoped (at least on Windows 7). My test scenarios are as follows: ``` AA # not a valid number A1 # not a valid number 1A # not a valid number 11 # a valid number ```