Definir y usar una variable en un archivo por lotes

Resuelto Jamie Dixon asked hace 12 años • 4 respuestas

Estoy intentando 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é no se repite mi variable?

Jamie Dixon avatar May 11 '12 20:05 Jamie Dixon
Aceptado

El espacio antes de se =interpreta como parte del nombre y el espacio después (así como las comillas) se interpretan como parte del valor. Entonces se puede hacer referencia a la variable que ha creado con %location %. Si eso no es lo que desea, elimine los espacios adicionales en la definición.

Brian Nixon avatar May 11 '2012 14:05 Brian Nixon

Los espacios son significativos. Creaste una variable nombrada 'location ' con un valor de
' "bob"'. Nota: se agregaron comillas simples para mostrar la ubicación del espacio.

Si desea comillas en su valor, entonces su código debería verse así

set location="bob"

Si no quieres comillas, entonces tu código debería verse así

set location=bob

O mejor aún

set "location=bob"

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

dbenham avatar May 11 '2012 14:05 dbenham

aportelocation.bat

@echo off
cls

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

producción

We're working with bob

(errores que cometiste: spacey " ")

Philip avatar Aug 15 '2017 20:08 Philip