Я пытаюсь определить и использовать переменную в командном файле. Похоже, все должно быть просто:
@echo off
set location = "bob"
echo We're working with "%location%"
Вывод, который я получаю, следующий:
We're working with ""
Что тут происходит? Почему моя переменная не отображается?
batch-file
cmd
environment-variables
Джейми Диксон
источник
источник
=
интерпретируется как часть имени, тогда на переменную нельзя ссылаться как%location%
, на нее нужно ссылаться как%location %
. Это опечатка?alias x = y
* nix земли?x = y
?Пространства являются значительными. Вы создали переменную с именем
'location '
со значением' "bob"'
. Примечание. Вложенные одинарные кавычки были добавлены для отображения местоположения.Если вы хотите кавычки в вашем значении, то ваш код должен выглядеть так
Если вы не хотите кавычки, то ваш код должен выглядеть так
Или еще лучше
Последний синтаксис предотвращает случайное попадание конечных пробелов в значение, а также защищает от специальных символов, таких как
&
|
и т. Д.источник
%
, и, возможно,!
если включено отложенное расширение. Но если значение действительно содержит кавычки, то вы должны беспокоиться о том, когда , чтобы избежать отравленных символы , такие как|
,&
и т.д.вход
location.bat
вывод
(ошибки вы сделали:
space
и" "
)источник
set /p
запрашивает пользователя и сохраняет ответ в указанной переменной. напр.,set /p name="What is your name? " & echo Hello, %name%.
set /p "varname"="text"
неправильный, он создает переменную с именемlocation"
(с завершающей кавычкой!). Так и должно бытьset /p location="bob"
. Но даже тогда это больше не соответствует вопросу