0

H 皆さんこんにちは。次のことを行うバッチ (umake.bat) ファイルを作成するつもりです。

.bat -f.

ケース 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 の場合、 の後にファイル名がないため、make(GNU make) は成功しません-f。簡単にするために、これはユーザーの責任であり、問​​題は GNU make によって報告されるため、気にする必要はありません。

概要:

  • ユーザー-f xxxがコマンド パラメータを指定した場合、それらのパラメータを に渡しますmake
  • ユーザーが を提供しない場合は、すべてのユーザーのパラメーターを-f xxx呼び出し、追加のパラメーターとして追加します。make-f Makefile.umkmake

ありがとうございました。

4

1 に答える 1

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ます。
于 2012-08-06T07:15:51.443 に答える