Определение и использование переменной в командном файле
Я пытаюсь определить и использовать переменную в командном файле. Похоже, все должно быть просто:
@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%"
Пожалуйста, удалите "" это с двух сторон переменной. Это будет работать нормально.