Я создал новую переменную среды через усовершенствованные параметры настройки системы Windows 7:
VAR_MYPATH = "D:\someFolder"
Я добавил новую переменную к пути в том же диалоговом окне:
PATH = ...;%VAR_MYPATH%
Когда я выполняю новую командную строку и тип "CD %VAR_PATH %", никакая ошибка не возвращается, но командная строка не изменяется на "D:\someFolder".
Если я пытаюсь запустить пакетный файл под той папкой от моего диска C, я заканчиваю с ошибкой:
c:> %VAR_MYPATH%\someSubfolder\theBatchFile.bat
The system cannot find the path specified
Все пути корректны, поэтому что я пропускаю, чтобы заставить переменную среды работать?
Поскольку совместимость рассуждает с MS-DOS и COMMAND.COM
, Windows cmd.exe
оболочка ведет список "текущих каталогов", один для каждой буквы диска, и cd
управляйте изменяет каталог, но не текущий диск.
Использовать cd /d %var_mypath%
также изменить текущий диск.
Не помещайте кавычки в значение переменной. Если Вы делаете, то %VAR_MYPATH%\someSubfolder\theBatchFile.bat
расширится до "d:\someFolder"\someSubfolder\theBatchFile.bat
, который может перепутать вещи. (Снова, для совместимости, cmd.exe
наследовал много причуд от COMMAND.COM
, включая странный заключенный в кавычки текстовый синтаксический анализатор.)
Удостоверьтесь, что переменная на самом деле существует в Вашем токе cmd.exe
окно, любой путем выполнения set var_mypath
или echo %var_mypath%
. (Каждый процесс наследовал среду от своего родителя.)