Freigeben über


patsubstpatsubsti, NMAKE-Funktionen

Wertet eine Liste von Elementen mit jedem Element aus, das einem Muster entspricht, das durch eine Ersetzung ersetzt wird, und Elemente, die nicht übereinstimmen, wie es ist.

Syntax

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

Parameter

pattern
Das Muster , nach dem gesucht werden soll.

replacement
Das Muster , durch das ersetzt werden pattern soll. Wenn ein Wildcard vorhanden replacementist, wird er durch den Text ersetzt, in dem der Wildcard pattern übereinstimmt.

input
Die Liste der elemente, die ersetzt oder aufbewahrt werden sollen.

Rückgabewert

Gibt inputzurück, aber jedes Element, das übereinstimmt pattern , wird durch replacementersetzt. Elemente, die nicht übereinstimmen pattern , werden beibehalten.

Hinweise

patsubsti ist die Groß-/Kleinschreibung ohne Berücksichtigung der Groß-/Kleinschreibung von patsubst.

Diese Makrofunktion ist ab Visual Studio 2022, Version 17.1, in NMAKE, Version 14.31 oder höher, verfügbar.

Beispiel

$(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)))

Siehe auch

Makros und NMAKE
NMAKE-Funktionen nach Kategorie