Sdílet prostřednictvím


patsubst, patsubsti funkce NMAKE

Vyhodnocuje seznam položek s každou položkou, která odpovídá vzoru nahrazeného nahrazením, a položky, které se neshodují tak, jak jsou.

Syntaxe

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

Parametry

pattern
Vzor, který chcete vyhledat.

replacement
Vzor, kterým se má nahraditpattern. Pokud je zástupný replacementznak v souboru , bude nahrazen textem, který se zástupným znakem shoduje pattern .

input
Seznam položek, které mají být nahrazeny nebo zachovány.

Vrácená hodnota

Vrátí input, ale každá položka, která odpovídápattern, je nahrazena .replacement Položky, které se neshodují pattern , se uchovávají tak, jak jsou.

Poznámky

patsubsti nerozlišuje malá a velká písmena verze patsubst.

Tato funkce makra je dostupná od sady Visual Studio 2022 verze 17.1 ve verzi NMAKE verze 14.31 nebo novější.

Příklad

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

Viz také

Makra a příkaz NMAKE
Funkce nástroje NMAKE podle kategorie