У меня есть компьютер с Windows 7, который при запуске командной строки обычным пользователем не может раскрыть переменные среды в %PATH%
. Если вместо этого командная строка запускается от имени администратора (щелкните правой кнопкой мыши « Запуск от имени администратора» ), то %PATH%
она соответствующим образом расширяется.
В частности, %PATH%
для cmd.exe
запуска от имени пользователя (отображается через set path
) выглядит следующим образом:
Path=%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\Wbem;%SYSTEMROOT\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft Windows Performance Toolkit\
... тогда как %PATH%
для cmd.exe
запуска от имени администратора это выглядит следующим образом:
Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\Wbem;%SYSTEMROOT\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft Windows Performance Toolkit\
Я попытался войти в систему как новый пользователь, чтобы создать новый профиль, и проблема сохраняется и в этом профиле. HKEY_CURRENT_USER\Environment\PATH
не существует и HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\Path
соответствует определенному общесистемному пути в Свойствах компьютера -> Переменные среды.
У кого-нибудь есть идеи, что это может быть, или где я могу посмотреть?
REG_SZ
проблема возникнет, если я верну ее обратно,REG_EXPAND_SZ
она исправится.Я столкнулся с той же проблемой при попытке настроить Maven ...
Я нашел этот пост в Superuser, который пролил некоторый свет на проблему, но она не сработала для меня. Казалось, проблема заключается в повышении прав, поскольку оболочка администратора будет работать, а оболочка пользователя - нет. Наконец, я решил просто воссоздать пользовательские переменные в качестве системных переменных и добавить их в глобальный путь.
Это работало для пары переменных, но у меня была одна пара, которая все еще не расширялась. Я воссоздал их с новыми именами пару раз, но безрезультатно. Тем не менее, переменные наконец-то правильно расширились в пользовательской оболочке после того, как я отключил UAC, перезагрузил, снова включил UAC и снова перезагрузил.
источник
У меня была очень похожая проблема - простым решением было добавить точку с запятой после псевдонима в определении пути .
Длинная история:
Я использую
node.js
так что псевдоним NODE_HOME определяется через переменную среды пользователя. Затем я добавляю этот псевдоним в переменную окружения PATH .Я обнаружил, что после перезагрузки оболочка потеряла путь к NODE_HOME, и
npm
т.д. не будет работать. В чем дело?При осмотре я вижу, что NODE_HOME установлен, но он волшебным образом получил точку с запятой .
PATH теперь заканчивается литеральной строкой % NODE_HOME% вместо расширенного пути к папке узла:
Исправить это:
Сначала удалите ошибочную точку с запятой в конце определения NODE_HOME .
Во-вторых, добавьте точку с запятой после символа NODE_HOME в определении PATH :
Теперь, когда я запускаю новую оболочку и раскрываю PATH , он находит NODE_HOME :
И
npm
снова работает!источник
ПРОБЛЕМА : Моя проблема была только зловещей, как я вас правильно понимаю. Мой «путь» содержал ...;% ANT_HOME% \ bin; ... Я правильно установил переменную ANT_HOME в Системные (не пользовательские) переменные, а CMD -> SET так же, как "echo% ANT_HOME%", напечатал ее правильно ,
РЕШЕНИЕ : Я решил проблему, переместив папку из c: \ dev \ 3rd \ ant ... в c: ** Programm Files (x86) ** \ dev \ 3rd \ ant ...
источник