Estoy tratando de definir y usar una variable en un 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 el siguiente:
We're working with ""
¿Que está pasando aqui? ¿Por qué mi variable no se repite?
batch-file
cmd
environment-variables
Jamie Dixon
fuente
fuente

=se interpreta como parte del nombre, entonces no se puede hacer referencia a la variable%location%, se debe hacer referencia a ella como%location %. ¿Es eso un error tipográfico?alias x = yen * nix land?x = y?Los espacios son significativos. Creó una variable denominada
'location 'con un valor de' "bob"'. Nota: se agregaron comillas simples para mostrar la ubicación del espacio.Si desea cotizaciones en su valor, entonces su código debería verse así
Si no desea cotizaciones, entonces su código debería verse así
O mejor aún
La última sintaxis evita que los espacios finales involuntarios entren en el valor y también protege contra caracteres especiales como
&|etc.fuente
%, y posiblemente!si la expansión retrasada está habilitada. Pero si el valor contiene comillas, entonces debe preocuparse cuando para escapar caracteres como veneno|,&etc.entrada
location.batsalida
(errores que has hecho:
spacey" ")fuente
set /ppregunta al usuario y almacena la respuesta en la variable especificada. por ejemplo,set /p name="What is your name? " & echo Hello, %name%.set /p "varname"="text"es incorrecta, crea una variable llamadalocation"(¡con una comilla final!). Debería serset /p location="bob". Pero incluso entonces, ya no coincide con la pregunta