Переменные среды имеют разные значения в зависимости от того, как запускается CMD.exe

4

У меня есть команда настройки в реестре как ассоциация папок, поэтому я могу нажать Shift + щелчок правой кнопкой мыши по любой папке и открыть там приглашение VS2010 вместо того, чтобы открывать командную строку и затем CD в каталог, в котором я работаю. Но это не работает ...

Настроить:

JAVA_HOMEустановлен C:\Program Files\Java\jdk1.7.0_04в «Компьютер»> «Дополнительные параметры системы»> «Переменные среды» ...

Когда я делаю следующее, правильное значение выводится:

Пуск> Командная строка Visual Studio (2010) ( %comspec% /k ""C:\Program Files (x86)\Microsoft Visual Studio 2010 Premium\VC\vcvarsall.bat"" x86):

Вывод (правильный):

Setting environment for using Microsoft Visual Studio 2010 x86 tools.

C:\Program Files (x86)\Microsoft Visual Studio 2010 Premium\VC>echo %JAVA_HOME%
C:\Program Files\Java\jdk1.7.0_04

Но когда я делаю следующее, используется неправильное (старое) значение:

Shift + щелчок правой кнопкой мыши по папке, выберите «Открыть приглашение VS2010 здесь» ( cmd /k ""C:\Program Files (x86)\Microsoft Visual Studio 2010 Premium\VC\bin\vcvars32.bat" x86 && cd /d "%V" && title Visual Studio Command Prompt (2010)"в реестре):

Вывод (неверно) :

Setting environment for using Microsoft Visual Studio 2010 x86 tools.

E:\Hg>echo %JAVA_HOME%
C:\Program Files\Java\jdk1.6.0_27

Почему значения разные ??? Откуда второй экземпляр читает эти значения?

Ян Кемп
источник
Имеет ли это значение, если вы также используете %comspec%во второй записи?
Der Hochstapler
@Oliver Salzburg:% comspec% не раскрывается при запуске из реестра. Я создал пакетный файл , который вызывает %comspec%/k ""C:\Program Files (x86)\Microsoft Visual Studio 2010 Premium\VC\bin\vcvars32.bat" x86 && cd /d "%V" && title Visual Studio Command Prompt (2010)"и называется , что из реестра - дает такой же (неправильное) поведение , как 2 - й случай выше.
Ян Кемп

Ответы:

1

Обратите внимание, что существует 2 набора переменных среды. Один для пользователя и один для всей системы:

введите описание изображения здесь

Убедитесь, что оба настроены. Иногда пользовательские переменные установлены, иногда нет.

Der Hochstapler
источник
В JAVA_HOME есть только 1 запись, которая находится в разделе «Системные переменные».
Ян Кемп