Remplacement de chaîne dans le fichier batch
Nous pouvons remplacer des chaînes dans un fichier batch en utilisant la commande suivante
set str="jump over the chair"
set str=%str:chair=table%
Ces lignes fonctionnent bien et changent la chaîne "sauter par-dessus la chaise" en "sauter par-dessus la table". Maintenant, je veux remplacer le mot "chaise" dans la chaîne par une variable et je ne sais pas comment le faire.
set word=table
set str="jump over the chair"
??
Des idées?
74
demandé sur
Péter Török
2010-05-05 14:43:23
2 réponses
Vous pouvez utiliser !, mais vous devez avoir le commutateur ENABLEDELAYEDEXPANSION ensemble.
setlocal ENABLEDELAYEDEXPANSION
set word=table
set str="jump over the chair"
set str=%str:chair=!word!%
59
répondu
Vicky
2010-05-05 10:52:32
Vous pouvez utiliser le petit truc suivant:
set word=table
set str="jump over the chair"
call set str=%%str:chair=%word%%%
echo %str%
Le call
provoque une autre couche d'expansion variable, ce qui rend nécessaire de citer les signes %
originaux, mais tout fonctionne à la fin.
61
répondu
Joey
2010-05-05 13:17:22