Estoy teniendo problemas para establecer el valor dentro de if block. Por favor considere el siguiente código:
\ mytool.bat
@echo off
if not "%adder%" == "" (
set val=%val%;%adder%
) else (
echo please set adder first
)
echo value="%val%"
Ahora cuando ejecuto lo siguiente a través de cmd:
set adder=a(bc)d
mytool
Me da error es decir
d was unexpected at this time.
Por otro lado, seguir funciona
set adder=abcd
mytool
con salida value=";abcd"
quiero el comportamiento similar incluso cuando addertengo paréntesis.
También probé esto . Pero solo persisten los cambios en la variable val dentro del lote.

gotoen su lugar? No es exactamente ordenado, pero evita el problema.Respuestas:
¿Cómo configuro el valor de una variable dentro de un bloque if cuando el valor incluye paréntesis?
Si el valor de la variable contiene un paréntesis
(o)necesita citar lasetexpresión del lado derecho en el archivo por lotesset "val=%val%;%adder%"prueba.cmd:
salida:
"Porque el valor de val no persiste fuera del archivo por lotes"
No es verdad.
Otras lecturas
fuente
mi sugerencia es :
fuente