次の方法で共有


patsubstpatsubsti NMAKE 関数

項目の一覧に対して、置換によって置き換えられるパターンに一致する各項目と、一致せずにそのまま維持される項目を評価します。

構文

$(patsubst pattern,replacement,input)
$(patsubsti pattern,replacement,input)

パラメーター

pattern
検索するパターン

replacement
pattern の置換後のパターンreplacement にワイルドカードが含まれている場合、その部分は、pattern 内のワイルドカードと一致したテキストに置き換えられます。

input
置換または維持される項目の一覧

戻り値

input が返されます。ただし、pattern に一致する各項目は replacement によって置き換えられます。 pattern に一致しない項目はそのまま維持されます。

解説

patsubstipatsubst の大文字と小文字を区別しないバージョンです。

このマクロ関数は、NMAKE バージョン 14.31 以降、Visual Studio 2022 バージョン 17.1 以降で使用できます。

$(patsubst He%,_%_,Hello Hey Hi) # Evaluates to "_llo_ _y_ Hi"
# "He" matches "Hello" and "Hey", and so "llo" and "y" are matched by the wildcard
# and used to substitute the wildcard in the replacement. "Hi" is not matched and so is kept as-is

$(patsubst Hi,Bye,Hello Hey Hi) # Evaluates to "Hello Hey Bye" - No wildcard is required
$(patsubst %lo,Bye,Hello Hey Hi) # Evaluates to "Bye Hey Hi"
# A wildcard can be used in the pattern without a wildcard in the replacement

$(patsubst he%,_%_,Hello Hey Hi) # Evaluates to "Hello Hey Hi" - patsubst is case-sensitive, so no substitutions performed
$(patsubsti he%,_%_,Hello Hey Hi) # Evaluates to "_llo_ _y_ Hi" - patsubsti is case-insensitive

# patsubsti is commonly used to change the file extensions of a list of files
OBJ_FILES=$(patsubst %.c,%.obj,$(C_SOURCES)) $(patsubst %.cpp,%.obj,$(patsubst %.cxx,%.obj,$(CPP_SOURCES)))

関連項目

マクロと NMAKE
カテゴリ別の NMAKE 関数