Condividi tramite


patsubst, patsubsti funzioni NMAKE

Restituisce un elenco di elementi con ogni elemento che corrisponde a un criterio sostituito da una sostituzione e gli elementi che non corrispondono mantenuti così come sono.

Sintassi

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

Parametri

pattern
Modello da cercare.

replacement
Modello da sostituire pattern con. Se un carattere jolly è presente in replacement, verrà sostituito con il testo in pattern cui corrisponde il carattere jolly.

input
Elenco di elementi da sostituire o conservare.

Valore restituito

Restituisce input, ma ogni elemento corrispondente pattern viene sostituito da replacement. Gli elementi che non corrispondono pattern vengono mantenuti così come sono.

Osservazioni:

patsubsti è la versione senza distinzione tra maiuscole e minuscole di patsubst.

Questa funzione macro è disponibile a partire da Visual Studio 2022 versione 17.1, in NMAKE versione 14.31 o successiva.

Esempio

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

Vedi anche

Macro e NMAKE
Funzioni NMAKE per categoria