У меня есть компьютер с 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
соответствует общесистемному пути в Свойства компьютера -> Переменные среды.
Есть ли у кого-нибудь идеи, что это может быть, или где я могу посмотреть?
Я могу попробовать две вещи.
sfc /scannow
чтобы увидеть, решит ли это какие-либо более серьезные проблемы.Path
ключ в HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
. Что за тип. Следует сказать REG_EXPAND_SZ
У меня была очень похожая проблема - простым решением было добавить точка с запятой после псевдонима в определении пути.
я использую node.js
так что имейте NODE_HOME псевдоним, определенный через переменную пользовательской среды. Затем я добавляю этот псевдоним к своему ДОРОЖКА переменная окружения.
Я обнаружил, что после перезагрузки оболочка потеряла путь к NODE_HOME так npm
и т. д. работать не будет. В чем дело?
При осмотре я вижу, что NODE_HOME установлен, но он волшебным образом приобрел точку с запятой.
C:\Users\ob>echo %NODE_HOME%
C:\Users\ob\node-8.11.1;
ДОРОЖКА теперь заканчивается буквальной строкой % NODE_HOME% вместо расширенного пути к папке узла:
C:\Users\ob>echo %PATH%
C:\Program...rams\Git\cmd;%NODE_HOME%
Исправить это:
Сначала удалите ошибочную точку с запятой в конце определения NODE_HOME.
Во-вторых, Добавить точка с запятой после NODE_HOME символ в определении ДОРОЖКА:
C:\Program...rams\Git\cmd;%NODE_HOME%;
Теперь, когда я запускаю новую оболочку и расширяю ДОРОЖКА, он находит NODE_HOME:
C:\Users\ob>echo %PATH%
C:\Program...ams\Git\cmd;C:\Users\tkobo\Installations\node-8.11.1;
И npm
снова работает!
Я столкнулся с той же проблемой при настройке Maven ...
я нашел это пост на суперпользователе это пролило некоторый свет на проблему, но для меня это не сработало. Похоже, проблема заключалась в повышении прав, поскольку оболочка администратора работала, а оболочка пользователя - нет. В конце концов я решил просто воссоздать пользовательские переменные как системные переменные и добавить их в глобальный путь.
Это сработало для пары переменных, но у меня была одна пара, которая все равно не расширялась. Пару раз я воссоздавал их с новыми именами, но безрезультатно. Однако переменные, наконец, правильно расширились в пользовательской оболочке после того, как я отключил UAC, перезагрузился, снова включил UAC и снова перезагрузился.
ПРОБЛЕМА: У меня проблема была только синьилярная, насколько я вас правильно понимаю. Мой "Путь" содержал ...;% ANT_HOME% \ bin; ... Я правильно установил переменную ANT_HOME в Системные (не пользовательские) переменные, а CMD -> SET так же, как "echo% ANT_HOME%" распечатал ее правильно .
РЕШЕНИЕ: Я решил проблему перемещение папки из c: \ dev \ 3rd \ ant ... к c: ** Программные файлы (x86) ** \ dev \ 3rd \ ant ...