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 adder
tengo paréntesis.
También probé esto . Pero solo persisten los cambios en la variable val dentro del lote.
goto
en 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 laset
expresió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