При настройке переменных в пакетном режиме нужно соблюдать осторожность, чтобы не использовать ненужные пробелы. (Я не вижу этого в вашем вопросе, но хотел обзвонить его, поскольку я поймал себя на том, что делаю это при устранении неполадок.) Например:
set x=123
это не то же самое, что
set x = 123
Первый будет установлен %x%
в 123
, в то время как последний будет установлен %x %
в 123
. (Обратите внимание на пробел после x
в имени переменной и еще один перед 123
в определении.)
Еще одна вещь, о которой нужно знать, это то, что ты не можешь просто сказать var=value
. Чтобы установить переменную среды, вы должны использовать SET
команду.
Таким образом, правильный синтаксис для установки переменной среды, которая содержит путь, а затем тот, который расширяет этот путь, выглядит следующим образом:
set x=C:\This\is\a\directory
set y=%x%\more\dirs
Затем вы можете использовать SET
команду для проверки содержимого этих переменных.
Если вы только изучаете языки сценариев в Windows, возможно, было бы более полезно пропустить пакет и перейти прямо в PowerShell. PowerShell поставляется в стандартной комплектации с Windows Vista и выше, а также доступен для XP. Вот как такая же работа будет выполнена в PowerShell.
$x='C:\This\is\a\directory'
$y="$x\more dirs"
(Примечание: есть причина, по которой двойные кавычки использовались при настройке $y
, в то время как одинарные кавычки использовались для $x
. В этом случае мы могли бы использовать либо для установки, $x
но двойные кавычки были обязательны для установки, $y
поскольку нам нужно было расширить переменную. вы узнаете больше об этом, как вы поднимаете язык.)
Затем, чтобы проверить переменные, вы можете просто вызвать их напрямую.
PowerShell также гораздо менее чувствителен к пробелам в большинстве случаев.
$x=123
такой же как
$x = 123