Определение и использование переменной в командном файле

Я пытаюсь определить и использовать переменную в командном файле. Похоже, все должно быть просто:

@echo off

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

Вывод, который я получаю, следующий:

We're working with ""

Что здесь происходит? Почему моя переменная не отображается?

Ответ 1

Пространство перед = интерпретируется как часть имени, а пробел после него (а также кавычки) интерпретируется как часть значения. Таким образом, для переменной, которую вы создали, можно ссылаться на %location %. Если это не то, что вы хотите, удалите лишнее пространство в определении.

Ответ 2

Пространства являются значительными. Вы создали переменную с именем (заключив в нее одинарные кавычки, чтобы показать расположение пространства) 'location ' со значением ' "bob"'.

Если вы хотите кавычки в вашем значении, то ваш код должен выглядеть так

set location="bob"

Если вы не хотите кавычки, то ваш код должен выглядеть так

set location=bob

Или еще лучше

set "location=bob"

Последний синтаксис предотвращает попадание значения в непреднамеренные конечные пробелы, а также защищает от специальных символов, таких как & | и т.п.

Ответ 3

ввод location.bat

@echo off
cls

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

Выход

We're working with bob

(ошибки, сделанные: space и " ")

Ответ 4

 @ECHO OFF

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

Пожалуйста, удалите "" это с двух сторон переменной. Это будет работать нормально.