I need pass various parameters into a .cmd file with unix format
file.cmd -Configuration=value -Source=value -flag
But, i try this:
StartLocal
@ECHO off
CLS
SETLOCAL
SET CMDLINE=%*
SET Configuration=
SET Source=
SET BADARGS=
SET VALIDATION=
GOTO main
:SplitArgs
echo SplitArgs(%*)
if "%*" NEQ "" (
for /F "tokens=1,2,* delims== " %%i in ("%*") do call :AssignKeyValue %%i %%j & call :SplitArgs %%k
)
goto :eof
:AssignKeyValue
echo AssignKeyValue(%1, %2)
if /i %1==-Configuration (
SET Configuration=%2
) else if /i %1==-Source (
SET Source=%2
) else (
REM Append unrecognised [key,value] to BADARGS
echo Unknown KEY %1
SET BADARGS=%BADARGS%[%1, %2]
)
goto :eof
:Validate
echo Validating
SET VALIDATION=FAIL
if defined Configuration (
echo -Configuration ok
if defined Source (
echo -Source ok
if NOT defined BADARGS (
SET VALIDATION=SUCCESS
)
)
)
goto :eof
:main
cls
call :SplitArgs %CMDLINE%
call :Validate
if "%VALIDATION%" EQU "SUCCESS" (
ECHO -Configuration = %Configuration%
ECHO -Source = %Source%
)
But i have a problems, because when i write a parameter in this mode
file.cmd Source=value
always take the value,i need validate this, some idea... thank you