如何将unix等参数传递到windows批处理文件中



我需要将各种参数传递到具有unix格式的.cmd文件

file.cmd-Configuration=value-Source=value-flag

但是,我试试这个:

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%
  ) 

但我有一个问题,因为当我在这种模式下写一个参数

file.cmd Source=值

总是取值,我需要验证这个,一些想法。。。感谢

试试这个:

file.cmd "Source=value" 

最新更新