You can also use an array approach:
setlocal EnableDelayedExpansion
set arg[1]=validArgument1
set arg[2]=validArgument2
set arg[3]=validArgument3
for /L %%i in (1,1,3) do if /I "%1" equ "!arg[%%i]!" SET "ARG=!arg[%%i]!"
In my opinion, this method is more understandable and easier to manage multiple options. For example, you can create an array of valid arguments this way:
set i=0
for %%a in (validArgument1 validArgument2 validArgument3) do (
set /A i+=1
set arg[!i!]=%%a
)
Another possibility is to define a variable for each valid argument:
for %%a in (validArgument1 validArgument2 validArgument3) do set %%a=1
... and then just check the parameter as follows:
if defined %1 (
echo %1 is valid option...
SET ARG=%1
)
source
share