Declaración y uso de una variable en el archivo por lotes de Windows (.BAT)

Intento declarar y usar una variable en mi archivo por lotes. Parece que debería ser simple.

@ECHO OFF SET location = "bob" ECHO We're working with "%location%" 

El resultado que obtengo es:

 We're working with "" 

¿Que está pasando aqui? ¿Por qué mi variable no se repite?

El espacio antes de = se interpreta como parte del nombre, y el espacio posterior (así como las comillas) se interpretan como parte del valor. Entonces, la variable que ha creado se puede referenciar con %location % . Si eso no es lo que quieres, elimina los espacios extra en la definición.

Los espacios son significativos. Creó una variable llamada (adjuntando comillas simples agregadas para mostrar la ubicación del espacio) 'location ' con un valor de ' "bob"' .

Si desea incluir comillas en su valor, su código debería verse como

 set location="bob" 

Si no quiere cotizaciones, entonces su código debería verse como

 set location=bob 

O mejor aún

 set "location=bob" 

La última syntax evita que los espacios inadvertidos entren en el valor y también protege contra caracteres especiales como & | etc.

input location.bat

 @echo off cls set /p "location"="bob" echo We're working with %location% pause 

salida

 We're working with bob 

(errores que has hecho: space y " " )