Deseo utilizar la función de búsqueda/reemplazo del comando SET
de forma dinámica.Windows: ¿Cómo usar "establecer" con búsqueda dinámica y reemplazar?
La manera normal sería como
SET blah=double-foo
SET blah=%blah:foo=bar%
Ahora quiero utilizar variables en la segunda línea en lugar de foo
y bar
:
SET search=foo
SET repl=bar
SET blah=double-foo
ECHO %blah%
SET blah=%blah:%search%=%repl%%
ECHO %blah%
solo me dan
double-foo
searchrepl%
También probé
SET blah=%blah:(%search%=%repl%)%
SET blah=%blah:(%search%)=(%repl%)%
¿Cómo puedo lograr esto? Si hago esto sin SET
, está bien. Al final quiero que la variable de entorno retenga double-bar
.
expansión retardada también se documenta mientras que el 'call' uno no es :-) – Joey
@Joey: Sí, es indocumentado, pero los efectos de' call' son bien conocidos (doble expansión, duplicando los signos de intercalación y desactivando la expansión retrasada) – jeb
+1: muy buena respuesta! – Jon