0

I'm using simple batch-file techniques to get user input:

@ECHO OFF
SET /P UserInput=Please Enter Version as X.X.X.X: 

Do you know how X.X.X.X can be validated where X are numbers?

for example:

User input should be: 1.0.0.23

thanks! :)

Mark
  • 3,609
  • 1
  • 22
  • 33
Martin M
  • 51
  • 6

2 Answers2

1

That's a fairly simple one - if any other character than numbers or periods exist then it will loop back for another go:

@ECHO OFF
:loop
set "UserInput="
SET /P "UserInput=Please Enter Version as X.X.X.X: "
for /f "delims=0987654321." %%a in ("%UserInput%") do echo Try again & goto :loop
foxidrive
  • 40,353
  • 10
  • 53
  • 68
1

This answer checks for 4 numeric fields dot delimited.

:Prompt
SET /P "UserInput=Please Enter Version as X.X.X.X: "
FOR /F "TOKENS=1-4 DELIMS=." %%i IN ("%UserInput%") DO (
    SET /A n1=1*%%i
    SET /A n2=1*%%j
    SET /A n3=1*%%k
    SET /A n4=1*%%l
)
IF NOT "%UserInput%" == "%n1%.%n2%.%n3%.%n4%" GOTO :Prompt
ECHO %UserInput%

Verification for negative numbers may also be added.

LS_ᴅᴇᴠ
  • 10,823
  • 1
  • 23
  • 46