2012-08-06 68 views
0

H大家好。我打算写一个批处理(umake.bat)文件,它执行以下操作:如何检查CMD/BAT命令行参数是否与特定单词匹配?

检查-f是否出现在bat参数之一中,以便我可以在.bat中采取不同的操作。

案例1:

用户呼叫

umake 

里面umake.bat我将执行

make -f Makefile.umk 

案例2:

用户呼叫

umake debug=1 var="big cat" 

里面umake.bat我将执行

make debug=1 var="big cat" -f Makefile.umk 

案例3:

用户呼叫

umake -f special.mk debug=1 

里面umake.bat我将执行

make -f special.mk debug=1 

案例4:

用户呼叫

umake debug=1 -f 

里面umake.bat我将执行

make debug=1 -f 

在情况4,使(GNU做)将不会成功,因为-f后失踪的文件名。为了简单起见,我不必关心这一点,因为这是用户的错,GNU make会报告问题。

摘要:

  • 如果用户提供命令参数-f xxx,我会通过这些参数make
  • 如果用户不提供-f xxx,我会拨打make与所有用户的参数,以及追加-f Makefile.umk作为make的额外参数。

谢谢。

回答

0

我似乎找到了解决方案,虽然代码是一些冗长的东西。

@echo off 

set _F_MAKEFILE=-f Makefile.umk 

:CHECK_PARAM_AGAIN 
if "%~1" == "" (
    goto CHECK_PARAM_DONE 
) else (
    if "%~1" == "-f" (
    set _F_MAKEFILE= 
    goto CHECK_PARAM_DONE 
) 
    rem echo @@@%1 
    shift 
) 
goto CHECK_PARAM_AGAIN 

:CHECK_PARAM_DONE 

@echo on 
make %* %_F_MAKEFILE% 

注:

  • 使用%~1是必须的。因为:如果%1的值为"big cat",%~1使其为big cat,以便我们可以用引号将%~1包围起来。
相关问题