¿Por qué no se establece test = lo que sea en Windows?

¿Por qué no se establece test = lo que sea en Windows?

A través de un script *.cmd que hago set "test = zzz"en la línea de comando y luego "echo %test%", lo que se me devuelve no es zzz, como esperaba, sino %test%.

¿Algunas ideas?

Respuesta1

La invocación del setcomando realmente funciona, pero no hace lo que espera.

El símbolo del sistema trata los espacios que rodean el signo de igualdad ( =) literalmente. Como resultado, la secuencia de comandos

set test = zzz
echo %test%
echo %test %

imprime lo siguiente:

%test%
 zzz

Dado que la variable testno está configurada, %test%no se reemplaza.

Respuesta2

No puede haber espacios antes o después del signo igual. Pruebe esto en su lugar:

 set test=zzz
 echo %test%

Respuesta3

Tienes que omitir los espacios.

Solía:

set "test=zzz"

y cuando lo usé echo %test%se muestrazzz

información relacionada