Я создал новую переменную среды через расширенные системные настройки 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

Все пути правильные, так что мне не хватает, чтобы заставить работать переменную среды?

1 ответ1

3
  1. По причинам совместимости с MS-DOS и COMMAND.COM оболочка Windows cmd.exe поддерживает список "текущих каталогов", по одному для каждой буквы диска, а команда cd изменяет каталог, но не текущий диск.

    Используйте cd /d %var_mypath% чтобы также изменить текущий диск.

  2. Не ставьте кавычки в значение переменной. Если вы это сделаете, то %VAR_MYPATH%\someSubfolder\theBatchFile.bat расширится до "d:\someFolder"\someSubfolder\theBatchFile.bat , что может привести к путанице . (Опять же, для совместимости, cmd.exe наследует много причуд от COMMAND.COM , в том числе странный анализатор текста в кавычках.)

  3. Убедитесь, что переменная действительно существует в текущем окне cmd.exe , запустив set var_mypath или echo %var_mypath% . (Каждый процесс наследует среду от своего родителя.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .